* added: class HTMLFilter

files: htmlfilter.h htmlfilter.cpp
         this is an html filter used to make the html output looking better
         this is a very lightweight filter
         (without using any dynamic memory - some memory is allocated only at the beginning - in ctors)
         this filter has O(n) complexity over the whole html string
* added: antyspamming method
         if the POST request is sent too fast after the GET
         it is treated as a spam
         only for no logged users and only in 'emacs' and 'createthread' functions
       


git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@534 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2009-12-09 00:42:40 +00:00
parent 9241fddb1e
commit 717eb526fb
32 changed files with 1356 additions and 198 deletions

View File

@@ -28,20 +28,44 @@ return true;
}
bool Content::FunCreateThreadCheckAbuse()
{
if( !CheckRebus() )
{
request.status = Error::incorrect_rebus;
request.session->done = Done::added_thread;
request.session->done_status = Error::incorrect_rebus;
return false;
}
CheckGetPostTimes();
if( request.session->spam_score > 0 )
{
request.status = Error::spam;
request.session->done = Done::added_thread;
request.session->done_status = Error::spam;
log << log1 << "Content: ignoring due to suspected spamming" << logend;
return false;
}
return true;
}
void Content::PostFunCreateThread()
{
if( !FunCreateThreadCheckAccess() )
return;
if( !CheckRebus() )
if( !FunCreateThreadCheckAbuse() )
{
request.status = Error::rebus_bad_answer;
request.PostVar("url", request.item.url);
request.PostVar("subject", request.item.subject);
request.PostVar("content", request.item.content);
SetUser(request.item);
return;
}
@@ -68,12 +92,11 @@ void Content::PostFunCreateThread()
if( request.session->done_status == Error::ok )
{
request.session->done = Done::added_thread;
log << log2 << "Content: added a new thread" << logend;
RedirectTo(*request.dir_table.back());
}
}
}