直接消除反馈
这更像是一种可以与许多其他方法结合使用的通用策略。不要让垃圾邮件发送者知道他是否成功。
您可以完全隐藏当前结果,仅显示百分比而不显示绝对票数,或者延迟显示投票。
- 优点:对所有方法都很好
- 缺点:如果欺诈是大规模的,百分比显示和延迟将无效
投票标记
也是一个一般策略。如果您有某种理由假设投票是由垃圾邮件发送者进行的,请计算他们的投票并将其标记为无效,并在最后删除无效投票。
- 优点:可抵御所有可检测到的垃圾邮件攻击
- 缺点:投票偏斜,更难设置,误报
验证码
使用验证码。如果您的验证码坏了,请使用更好的验证码。
知识产权检查
限制 IP 地址在一个时间跨度内可以投出的投票数。
- 优点:对在浏览器中不断点击F5的随机家伙很好
- 优点:易于实施
- 缺点:对咽音和使用代理服务器的复杂脚本毫无用处。
- 缺点:IP地址有时会映射到许多不同的用户
推荐人检查
如果假设一个用户映射一个 IP 地址,则可以限制该 IP 地址的投票数。然而,这种假设通常只适用于私人家庭。
- 优点:易于实施
- 优点:在一定程度上对单纯咽有好处
- 缺点:很容易被自动化脚本规避
电子邮件确认
使用电子邮件确认,并且只允许每封电子邮件投票一次。手动检查您的数据库,看看他们是否在使用一次性电子邮件。
请注意,您可以在电子邮件地址中添加用户名。 并且都将邮件传递到同一帐户,因此请记住,在检查是否有人已经投票时。+foo
username@example.com
username+foo@example.com
- 优点:对简单的垃圾邮件脚本很好
- 缺点:更难实施
- 缺点:有些用户不会喜欢它
表单随机化
随机化选择的顺序。这可能需要一段时间才能让他们发现。
断续器
投票伪造的一种方法是从有效的浏览器(如Firefox)捕获http请求,并使用脚本进行模拟,当您使用加密时,这并不容易。
- 优点:反正还不错
- 优点:适合对非常简单的脚本
- 缺点:设置起来更困难
代理检查
如果垃圾邮件发送者通过代理投票,您可以检查 X-Forwarded-For 标头。
- 优点:适用于使用代理的更高级脚本
- 缺点:一些合法用户可能会受到影响
缓存检查
尝试查看客户端是否加载了所有未缓存的资源。许多垃圾邮件机器人不会这样做。我从来没有尝试过这个,我只知道这通常不会被投票网站检查。
例如,嵌入到您的 html 中,a.gif是一些 1x1 像素的图像。然后,您必须使用 设置请求的 http 标头。你可以像这样用你的文件在Apache中设置http标头。(谢谢雅可)<img src="a.gif" />
GET /a.gif
Cache-Control "no-cache, must-revalidate"
.htaccess
[编辑于2010-09-22]
永恒饼干