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