过滤评论垃圾邮件? PHP

时间:2011-12-07 17:10:46

标签: php comments filtering spam-prevention

我正在寻找有关过滤垃圾邮件的方法的文章。当我搜索所有我一直在寻找的是Wordpress,过滤脏话等的方法,这不是我正在寻找的。我正在寻找编写自己的过滤系统和最佳实践的方法。

之前完成此任务的任何教程链接都将不胜感激。

到目前为止,只有好文章是http://snook.ca/archives/other/effective_blog_comment_spam_blocker

8 个答案:

答案 0 :(得分:12)

在编写自己的方法时,您必须结合使用启发式方法。

例如,垃圾评论通常有2个或更多URL链接。

我会开始编写你的过滤器,使用触发词的字典并让它循环并使用它们来确定概率:

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的东西都会被拒绝。

显然,这些都是您必须调整阈值的所有值,但这应该会让您开始使用非常基本的系统。您可以添加其他几个限定符来增加/减少垃圾邮件的可能性,例如检查不良单词与单词的比例,更改单词的权重等。

答案 1 :(得分:2)

我很惊讶没有人提到Akismet。我从来没有标记错误的消息(无论是垃圾邮件还是合法邮件)。我的WordPress安装附带了它。我所要做的就是点击启用。

答案 2 :(得分:1)

您是否正在寻找一种方法来阻止机器人等垃圾邮件?如果是这样,你总是可以添加一个CAPTCHA:http://en.wikipedia.org/wiki/CAPTCHA如果你正在尝试这样做,那么应该很容易就可以放任何项目。否则我不确定你在过滤垃圾邮件方面的意思。

答案 3 :(得分:1)

这是关于处理垃圾邮件发送者和垃圾邮件的另一个很好的教程......:

How To Stop Manual Comment Spammers

这是一个很好的类似SO问题的链接:

non-captcha methods for blocking spam on my comments

希望这有帮助。

答案 4 :(得分:1)

您可以查看b8垃圾邮件过滤器:http://nasauber.de/opensource/b8/

答案 5 :(得分:0)

答案 6 :(得分:0)

我想这篇文章The war with spam comment可以给你一些提示。当然现在有些机器人足够聪明,所以你可能还需要添加CAPTCHA。

答案 7 :(得分:0)

我希望这个脚本可以帮助您检测&保护垃圾邮件

<?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;
}
?>

Create spam filter in PHP Details