Фильтровать комментарий Спам?PHP - PullRequest
6 голосов
/ 07 декабря 2011

Я ищу статьи о способах фильтрации спама. Когда я ищу все, что постоянно нахожу, это Wordpress, способы фильтрации нецензурных слов и т. Д., А это не то, что я ищу. Я ищу способы написать свою собственную систему фильтров и лучшие практики.

Будем благодарны за любые учебные ссылки от тех, кто делал это раньше.

Только хорошая статья, которую я могу пока это http://snook.ca/archives/other/effective_blog_comment_spam_blocker

Ответы [ 8 ]

12 голосов
/ 07 декабря 2011

При написании собственного метода вам придется использовать комбинацию эвристик.

Например, спам-комментарии очень часто имеют 2 или более URL-ссылок.

Iначал бы писать свой фильтр примерно так, используя словарь триггерных слов и заставляя его циклически проходить и использовать их для определения вероятности:

function spamProbability($text){
    $probability = 0;  
    $text = strtolower($text); // lowercase it to speed up the loop
    $myDict = array("http","penis","pills","sale","cheapest"); 
    foreach($myDict as $word){
        $count = substr_count($text, $word);
        $probability += .2 * $count;
    }
    return $probability;
}

Обратите внимание, что этот метод приведет к множеству ложных срабатываний, в зависимости от вашегонабор слов;Вы могли бы иметь свой флаг для модерации (но он сразу же начинает работать) для сайтов с вероятностью> .3 и <.6, для этого требуется, чтобы> .6 и <.9 входили в очередь на модерацию (где они не появляются)до одобрения), а затем все, что больше> 1, просто отклоняется.

Очевидно, что это все значения, которые вы должны будете изменить, но это должно начать вас с довольно простой системы.Вы можете добавить к нему несколько других классификаторов для увеличения / уменьшения вероятности спама, таких как проверка соотношения плохих слов к словам, изменение веса слов и т. Д.

2 голосов
/ 07 декабря 2011

Я удивлен, что никто не упомянул Акисмет . У меня никогда не было сообщения, помеченного как неправильное (будь то спам или законный). Моя установка WordPress шла с ним. Все, что мне нужно было сделать, это включить хит.

1 голос
/ 25 ноября 2012

Вы можете взглянуть на спам-фильтр b8: http://nasauber.de/opensource/b8/

1 голос
/ 07 декабря 2011

Вот еще один хороший учебник по работе со спаммерами и спамами ...:

Как остановить ручные комментарии спаммеров

Вот ссылка на хорошийаналогичный вопрос SO:

не-капча методы для блокировки спама в моих комментариях

Надеюсь, это поможет.

1 голос
/ 07 декабря 2011

Вы ищете способ остановить спам от ботов и тому подобное? Если это так, вы всегда можете добавить CAPTCHA: http://en.wikipedia.org/wiki/CAPTCHA Должно быть достаточно просто поставить любой проект, если это то, что вы пытаетесь сделать. В противном случае я не уверен, что вы говорите с точки зрения фильтрации спама.

0 голосов
/ 27 февраля 2016

Надеюсь, этот скрипт поможет вам обнаружить и защитить спам

<?php
function isspam($text)
{
 $sfil[0] = "link";
 $sfil[1] = "http";
 $sfil[2] = "www";
 $sfil[3] = "any slang";
 $sfil[4] = "any word";
 $sfil[5] = "any website";
 $text = str_replace(" ", "", $text);
 $text = strtolower($text);
 for($i=0;$i<count($sfil);$i++)
 {

 $nosf = substr_count($text,$sfil[$i]);
 if($nosf>0)
 {
 return true;
 }
 }

 return false;
}
?>

Создать фильтр спама в PHP Подробнее

0 голосов
/ 22 февраля 2014

Полагаю, эта статья Война со спам-комментарием может дать вам несколько советов. Конечно, в настоящее время некоторые боты достаточно умны, поэтому вам может понадобиться добавить и CAPTCHA.

0 голосов
/ 07 декабря 2011

Рассмотрите возможность внедрения reCAPTCHA - вот ссылка - http://www.google.com/recaptcha а также http://code.google.com/apis/recaptcha/docs/php.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...