我正在开展基于网络的比赛,该比赛应允许匿名用户投票,但我们希望阻止他们多次投票.可以使用匿名代理绕过基于IP的限制,用户可以清除cookie等.可以使用Silverlight应用程序,该应用程序可以访问独立存储,但用户仍然可以清除它.
如果没有一些小丑用机器人或其他东西投票,我认为不可能做到这一点.知道了吗?
最简洁的答案是不.更长的答案是:但你可以任意地使它变得困难.我会怎么做:
投票需要解决验证码(尽可能避免自动投票).为了更加有效,我建议准备多种类型的简单验证码(例如"用猫挑选照片","2 + 2是什么","输入单词"等)并将它们两者旋转一天中的时间和IP,这应该使自动系统无效(即如果有人使用IP A创建机器人来解决验证码,这将在第二天变得无用或者如果他/她将其分发到其他计算机/使用代理)
当通过IP过滤时,您应该小心考虑多个主机落后于一个公共IP的情况(AFAIK AOL通过几个IP代理所有客户 - 因此这样的限制将有效地禁止AOL用户).此外,许多代理发送指向原始IP的标题(如X-Forwarded-For),因此您也可以查看它.
最后,使用类似FSO(Flash共享对象 - "Flash Cookie")之类的内容对于99.99%不了解的人来说是模糊不清的.Silverlight更加模糊.为了更加狡猾,您可以购买其他域名并从该域名设置FSO(因此,如果用户正在寻找您的域名设置FSO,他们将看不到任何域名)
这些方法都不是100%,但希望它们能够为您提供所需的保证.如果你想把这个级别提高一些,你需要添加某种用户注册(这可以像在投票时询问有效的电子邮件地址一样简单,并向给定地址发送确认链接而不计算没有点击链接的投票 - 所以它不需要是一个完整的"创建一个用户名/密码/冷杉名称/姓氏/等"的帐户).