防止投票垃圾邮件的最佳方法是什么?即reddit是如何做到的

时间:2012-12-29 23:40:32

标签: php spam slim reddit

众所周知,Reddit允许每个链接每个ip地址大约1个投票,以避免垃圾邮件发送者的问题。我正在开发一个具有投票功能的Slim应用程序,坦率地说,我不知道如何实现这样的系统,因为我没有使用cookie和本机会话的经验。此外,我的大部分功能都有路径,如(例如)localhost:8888 / myapp / voteup / item-to-vote。

2 个答案:

答案 0 :(得分:0)

打击自动机器人的最佳方法是混淆它们。隐藏一些文本输入字段,在其他地方命名它们(名称字段,将它们命名为电子邮件,以及网站,命名它们等)

首选使用仅提交Javascript,因此可以帮助减少来自外部的表单提交。 CSRF的使用也有帮助。强制使用cookie,HTTP自定义标题,以确保只有浏览器和没有自动化手段才能重现。

逻辑问题也有帮助,例如“1 + 1多少,写下来”(答案必须是两个,并使其随机)或“从W开始的一周中的哪一天” 。

答案 1 :(得分:0)

在我的网站上,我允许会员每24小时对一些代码进行1到5次的评分。我通过添加哈希码并使用ajax提交投票来阻止垃圾邮件。自从我在2012年6月添加垃圾邮件以来,我没有获得任何垃圾邮件投票。我曾经每天从机器人那里获得大约40票,但现在已经被淘汰了。

例如,这就是我的链接: http://phpsnips.com/process/vote.php?id=43&vote=3&enc=a560e4320af4e13e4170947cd42de18b

这样,每次页面加载时enc都不同,一旦提交了投票,它就会再次被更改。

我的步骤

  • 使用会话创建md5哈希
  • 将哈希放在链接上或形成隐藏字段
  • 在提交页面测试以确保会话与链接/字段匹配
  • 重置哈希
  • 重定向回原始页面(如果不使用ajax)