Bos*_*osh 63 php voting spam-prevention
目前我们正在举办一场非常好的比赛.不幸的是,我们让所有那些正在运行脚本的作弊者自动投票支持他们的参赛作品.我们已经通过手工查看数据库条目看到了一些作弊者 - 例如,使用相同浏览器的5星评级完全是所有70分钟.现在随着用户群的增长,识别它们变得越来越难.
我们到目前为止做了什么:
有谁知道我们如何使用PHP脚本在我们的数据库中找到模式,或者我们如何更有效地阻止它们?
任何帮助将非常感谢...
Ott*_*ger 79
这更像是一种可以与许多其他方法结合使用的一般策略.不要让垃圾邮件发送者知道他是否成功.
您可以完全隐藏当前结果,仅显示没有绝对投票数的百分比或延迟显示投票.
也是一般策略.如果您有理由认为投票是由垃圾邮件发送者进行,请计算他们的投票并将其标记为无效并在结尾处删除无效投票.
使用验证码.如果你的Captcha坏了,请使用更好的.
限制IP地址在一个时间跨度内投票的票数.
如果您假设一个用户映射一个IP地址,则可以通过该IP地址进行投票来限制该数量.然而,这种假设通常只适用于私人家庭.
使用电子邮件确认,每个电子邮件只允许一票.手动检查您的数据库,看看他们是否正在使用一次性电子邮件.
请注意,您可以+foo在电子邮件地址中添加用户名.username@example.com并且username+foo@example.com都会将邮件发送到同一个帐户,所以请记住在检查某人是否已经投票时.
随机化选择顺序.他们可能需要一段时间才能找到答案.
一种投票伪造方法是从Firefox等有效浏览器捕获http请求并使用脚本模仿它,这在使用加密时不起作用.
如果垃圾邮件发送者通过代理投票,您可以检查X-Forwarded-For标头.
尝试查看客户端是否加载了所有未缓存的资源.许多垃圾邮件不会这样做.我从来没有试过这个,我只是知道通常不会通过投票网站来检查.
一个例子是嵌入<img src="a.gif" />你的html,a.gif是一些1x1像素的图像.然后,你必须设置HTTP标头请求GET /a.gif用Cache-Control "no-cache, must-revalidate".您可以与您设置的Apache HTTP头.htaccess文件中像这样.(感谢Jacco)
[编辑2010-09-22]