我正在寻找有关过滤垃圾邮件的方法的文章。当我搜索所有我一直在寻找的是Wordpress,过滤脏话等的方法,这不是我正在寻找的。我正在寻找编写自己的过滤系统和最佳实践的方法。
之前完成此任务的任何教程链接都将不胜感激。
到目前为止,只有好文章是http://snook.ca/archives/other/effective_blog_comment_spam_blocker
答案 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)
考虑实施reCAPTCHA - 这是一个链接 - http://www.google.com/recaptcha 和 http://code.google.com/apis/recaptcha/docs/php.html
答案 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;
}
?>