我正在开展基于网络的比赛,该比赛应允许匿名用户投票,但我们希望防止他们多次投票.基于IP的限制可以绕过匿名代理,用户可以清除Cookie等.可以使用Silverlight应用程序,它可以访问隔离存储,但用户仍然可以清除.
我不认为有可能做这个没有一些小丑投票自己与机器人或东西.有想法?
解决方法
简短的答案是:不.较长的答案是:但是你可以使它变得任意困难.我会做什么
>投票需要解决验证码(尽可能避免自动投票).为了更有效,我建议您准备好多种类型的简单验证码(例如“选择猫的照片”,“什么是2 2”,“输入字”等),然后旋转它们(即如果有人使用IP A创建机器人来解决验证码,则在第二天将无用,或者如果将其分发到其他计算机/使用代理)
>通过IP过滤时,您应该小心考虑多个主机位于一个公共IP之后的情况(AFAIK AOL通过几个IP代理所有客户 – 因此这样的限制将有效地禁止AOL用户).此外,许多代理发送指向原始IP的标题(如X-Forwarded-For),因此您也可以看一下.
>最后,使用像FSO(Flash Shared Objects – “Flash cookies”)这样的东西,对于99.99%的人不了解,是不够的. Silverlight更加模糊.为了更加轻松,您可以购买另一个域名并设置该域的FSO(因此,如果用户正在寻找由您的域设置的FSO,则不会看到任何)
这些方法都不是100%,但希望结合在一起,为您提供所需的保证.如果你想要把这个级别提高一点,你需要添加一些用户注册(可以简单地在投票时询问一个有效的电子邮件地址,并向给定的地址发送确认链接,而不是计算没有点击链接的投票 – 所以它不需要是一个完整的“创建一个用户名/密码/ firs名称/姓氏/ etc”的帐户).