Dot*_*cer 5 asp.net asp.net-mvc
我想阻止用户在我的网站上多次投票,我用两种方法做到这一点,但没有人做得那么好!!
那么,我怎么能解决这个问题呢?
你有两个答案,你需要决定哪个是最好的.没有选择是防弹的.这一切都是为了减缓它们的速度,以及您可以接受的效果水平.
cookie通常是可以接受的方式.是的,Cookie可以被清除,但如果以防止重复投票的愿望是重要的,比登记,以防止它的唯一有效途径.任何其他机制都可能被想要的人击败.你可以使用像Evercookie这样的东西,但我一般认为这样做不是一个好习惯.如果您使注册过程简单但有效,一些用户会这样做.
IP地址与大多数重定向IP未静态分配一样有缺陷.有人可以重置他们的调制解调器,并获得一个新的IP地址.或者更糟糕的是,有人可以重置他们的调制解调器,获得已经访问过该网站的IP地址,并且无法投票.另一种情况是NAT背后的用户.如果有200人与NAT共享IP,那么其中只有一人可以投票.
你可以通过IP地址获得创意.继续使用cookie,因为这将是有效的.如果您开始检测来自同一IP地址的多个投票(因为他们清除了他们的cookie),则显示CAPTCHA.如果不是某人试图滥用该系统,那么他们仍然有机会投票.这将有助于打败自动投票,并减慢用户的速度,滥用您的投票系统是不值得的.这也是可以被击败的,这是你可以接受的有效程度.即使注册也不是纯粹100%有效,但可能是最有效的.什么会阻止某人使用不同的电子邮件地址多次注册?
我不认为你有很多选择,因为你不强迫用户注册.您需要使用会话或cookie.正如评论中指出的,您还可以检查IP地址.但如果目标受众使用其ISP分配的动态IP地址,则此解决方案也会失败.
如果可能的话,你可以要求用户注册他们的facebook/google id,就像stackoverflow正在做的那样
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |