阻止垃圾评论,而无需使用验证码[关闭](Blocking comment spam without

2019-08-19 05:00发布

什么是对我的意见拦截垃圾邮件一些非验证码的方法呢?

Answer 1:

在我的经验,目前最有效的方法是通过CSS做出对用户不可见的蜜罐输入字段 (最好用几种不同的方法,如能见度:隐藏,设置大小为0像素,绝对定位远远超出浏览器窗口); 如果他们无论如何充满你可以认为这是一个垃圾邮件机器人。

这个博客介绍,我已经尝试了我自己(有100次%的成功到目前为止)一个相当复杂的方法,但我怀疑,你可以跳过所有的东西与哈希字段名得到相同的结果,只是添加一些简单的蜜罐领域。



Answer 2:

1) 添加会话相关信息输入到表格实施例:

<input type="hidden" name="sh" value="<?php echo dechex(crc32(session_id())); ?>" />

然后在回传,检查会话是否有效。

2)Javascript的唯一 。 使用JavaScript注射提交。 例:

<input type="hidden" id="txtKey" name="key" value="" />
<input type="submit" value="Go" onclick="document.getElementById('txtKey').value = '<?php echo dechex(crc32(session_id())) ?>';" />

3) 每个IP,用户或会话的时间限制 。 这是非常简单的。

4)随机化的字段名称:

<?php
   $fieldkey = dechex(crc32(mt_rand().dechex(crc32(time()))));
   $_SESSION['fieldkey'] = $fieldkey;
?>
<input type="text" name="name<?php echo $fieldkey; ?>" value="" />
<input type="text" name="address<?php echo $fieldkey; ?>" value="" />   

然后你就可以在服务器端检查一下。



Answer 3:

Akismet在有一个API。 有人在为它写了一个包装类(BSD的license)过来: http://cesars.users.phpclasses.org/browse/package/4401.html

还有一个贝叶斯过滤器类(BSD的license以及) http://cesars.users.phpclasses.org/browse/package/4236.html



Answer 4:

这是简单的技巧来阻止垃圾邮件机器人或蛮力攻击,而无需使用验证码。

把这个在您的形式:

<input type="hidden" name="hash" value="<?php echo md5($secret_key.time()).','.time(); ?>" />

把这个在你的PHP代码

$human_typing_time = 5;/** page load (1s) + submit (1s) + typing time (3s) */
$vars = explode(',', $_POST['hash']);
if(md5($secret_key.$vars[1]) != $vars[0] || time() < $var[1] + $human_typing_time){
    //bot?
    exit();
} 

依靠重形式,你可以增加或减少$ human_typing_time的。



Answer 5:

天真Beyesian过滤器,当然,:

http://blog.liip.ch/archive/2005/03/30/php-naive-bayesian-filter.html



Answer 6:

还有就是蜜罐理论为好。 我喜欢与其他形式的垃圾邮件减少为获得最佳效果的耦合蜜罐。

http://www.projecthoneypot.org/



Answer 7:

另一种常见的方法是给用户一个简单的问题(“火是热或冷吗?”“什么是2加7?”等)。 这是一个有点 captcha-,但它是使用屏幕阅读器视觉障碍的用户更方便。 我认为必须有一个WordPress插件,这样做,是因为我看到它非常频繁WordPress的博客。



Answer 8:

由于很多人已经提出:使用蜜罐输入字段。 但也有另外两个你需要做的事情。 首先,随机名称/ ID,其中输入字段是蜜罐。 存储在会话有用字段的状态(以及一种形式的道理,对CSRF攻击中使用)。 对于exampe,你有这些字段,以获取:姓名,电子邮件,留言。 在你的表格,你将有“象征性”,这是你的道理,“jzefkl46”,这是名称这种形式,“ofdizhae”电子邮件“ 45sd4s2”的消息与“fgdfg5qsd4”的蜜罐。 在用户会话,你可以像

array("forms" => array("your-token-value" => array("jzefkl46" => "name",
                                                   "ofdizhae" => "email",
                                                   "45sd4s2" => "message",
                                                   "fgdfg5qsd4" => honey"));

你一定要回来,当你得到你的表单数据重新关联。

第二件事情,因为机器人有很多机会,以避免你的蜜罐领域(25%几率),乘罐的数量。 有10个其中20,你虽然没有在你的HTML太多的开销增加难度的机器人。



Answer 9:

Sblam! 类似于Akismet在一个开放源码的过滤器。

它使用朴素贝叶斯滤波,检查发送方的IP地址和链接在多个分布式黑名单,检查HTTP请求的正确性,并且使用JS的存在作为一个提示(但不要求)。



Answer 10:

定期验证码是现在的垃圾邮件僵尸解。

考虑替代“文本CAPTCHA系统” :一个逻辑或常识问题,如“什么是1 + 1?” 或“是什么颜色一般蛋奶的白马?” 这个问题甚至可以是静态的(同样的问题,每一个试试)。

(Taken from http://matthewhutchinson.net/2010/4/21/actsastextcaptcha )

我想杰夫阿特伍德甚至用这样的确认在他的博客。 (如我错了请纠正我)

一些资源:

  • 文字验证码的网站和服务: http://textcaptcha.com/demo
  • 一个插件: http://matthewhutchinson.net/2010/4/21/actsastextcaptcha
  • 更多有关文字验证码是与 -工作代码: http://www.thesamet.com/blog/2006/12/21/fighting-spam-on-phpbb-forums/


Answer 11:

你可以尝试考虑使用第三方类似的Akismet 。 API密钥是免费供个人使用。 此外,Zend框架有一个包这一点。



Answer 12:

大多数机器人只需填写整个窗体,并传送给你。 一个简单的技巧,工作是建立一个正常的字段,你平时隐藏的JavaScript的帮助。 在服务器端只检查该字段是否已经充满。 如果是这样的 - 那是垃圾邮件肯定的。



Answer 13:

禁止链接。 如果没有链接,垃圾邮件是没用的。

[编辑]作为一个中间道路,只允许联结到“好”的网站(通常是您自己)。 只有其中的少数,所以你可以在你的用户的请求,将它们添加或持有评论,直到你验证的链接。 当它的好,添加它。

一段时间后,你可以将其关闭,并自动拒绝与链接评论,并等待用户的抱怨。



Answer 14:

我已经通过类似下面的简单的数学问题,减少垃圾邮件的约99%,在我的网站:

什么是2 + 4 [文本框]

用户将可以提交问题/如果他们回答“6”发表评论。

对我的作品和类似的解决方案,从编码恐怖工程杰夫阿特伍德!



Answer 15:

在我的博客,我有一种折中的Captcha验证码:如果帖子包含一个链接,我只用一个验证码。 我也用一个蜜罐输入字段。 到目前为止,已经有将近 100%有效。 时不时地,会有那么提交的东西不包含链接各种形式的垃圾邮件发送者(通常是类似“不错的网站!”)。 我只能假设,这些人认为我会发邮件给他们,看看他们(使用的e-mail地址,只有我看到的)是谁。



Answer 16:

使用蜜罐字段一起,我们可以自动禁止有IP(不用于动态IP的工作),尤其是任何链接贴后背的机器人。



Answer 17:

Akismet在是一个很好的选择,他们检查你的帖子的垃圾邮件和非常有效地工作。 你只需要加载其librabry。 http://akismet.com/development/



Answer 18:

Checkout的WP反垃圾邮件插件的例子和想法

还有就是不使用验证码很多很好的防垃圾邮件。

一些我建议:使用bashcash,nospamnx,TypePad等反垃圾邮件。 所有这些使用不同的方法阻止垃圾邮件和我使用它们。 hashcash的+ nospamnx块几乎所有的垃圾邮件机器人。 和TypePad反垃圾邮件阻止大多数人类型化的垃圾邮件。

这些也都是好的:spambam,涡喷SpamFree,抗验证码,坏行为,httpbl等

也有简单的.htaccess,阻止任何机器人直接的职位,并非来自自己的网站(检查引荐)

或者,干脆外包您的评论系统disqus和睡个好觉。



文章来源: Blocking comment spam without using captcha [closed]
标签: php captcha spam