asp.net – 有一个可靠的方法来防止在匿名用户可以投票的基于网络的比赛中作弊?

前端之家收集整理的这篇文章主要介绍了asp.net – 有一个可靠的方法来防止在匿名用户可以投票的基于网络的比赛中作弊?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开展基于网络的比赛,该比赛应允许匿名用户投票,但我们希望防止他们多次投票.基于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”的帐户).

猜你在找的asp.Net相关文章