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



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

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

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

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

<<p> 我的步骤/strong>
  • 使用会话创建md5哈希
  • 将哈希值放在链接或表单隐藏字段
  • 在提交页面测试以确保会话匹配链接/字段
  • 重置哈希
  • 重定向回原始页面(如果不使用ajax)

对付自动机器人的最好方法就是迷惑它们。隐藏一些文本输入字段,将它们以其他方式命名(name字段,将它们命名为email,而site,将它们命名为name,等等)

更倾向于只使用Javascript提交,所以它可以帮助减轻外部的表单提交。使用CSRF也会有所帮助。强制使用cookie、HTTP自定义标头,所有这些都确保只有浏览器而没有自动化的手段可以重现。

逻辑问题也有帮助,比如"1 + 1等于多少,把它写下来"(答案必须是2,并且随机)或"从W开始的一周是几号"。

相关内容

最新更新