我打算在我运行的网站上添加一些投票/投票按钮.这似乎很容易,但我想阻止人们多次投票.一种解决方案是让他们在允许他们投票之前注册,但我不想强迫他们注册.
这样做有一种相当简单的方法吗?检查IP地址似乎不是一个好的解决方案,因为多个用户可能来自同一个IP地址.
Cookie可能是答案,但精明的用户可以删除cookie.有更好的想法吗?
对不起,我没有一个有用的答案,我只是想分享我的经验.
大约8年前,我在一个运行在线民意调查的网站工作.我们曾经遭到一些机器人的攻击,我们的一些问题每分钟投票数百票.
我不得不实施一些紧急检查:IP地址,cookie,我真的不记得还有什么.
在一天结束时,我们决定采取民意调查.那些该死的机器人只是不在乎.IP地址被欺骗,cookie被删除等.
如果你真的需要民意调查是不可能的,我没有看到任何其他方式需要注册和使用验证码,以避免机器人注册新帐户.
令人遗憾的是,这只是一个娱乐网站,民意调查了你最喜欢的颜色和类似的东西.
我们唯一没试过的是使用验证码,因为它们当时并不存在.这可能会减少非人类作弊行为.
不要把这个作为任何关于此事的专家建议,因为这是我与在线民意调查有关的唯一一次,但我记得我的故事并想分享.
我认为这实际上取决于您网站的性质,以及您的结果需要多准确.
使用cookie似乎是最好的选择,但它取决于您网站的目标受众.他们是否足够精通技术以试图击败系统以允许他们多次投票?如果没有,风险应该相当低,这似乎是最好的方法.
正如您所说,检查IP地址可能过于严格.但是,如果所有选票都来自独特的个人至关重要,这可能是更好的方法,即使这意味着一些合法的选民不会投票.
我想到了另一个选择,但我不确定它是否可行.如果您可以将IP地址方法与基于硬件的检查(例如NIC的MAC地址)相结合,这将消除由于LAN内的NAT而导致IP地址方法过于严格的限制.但是,如果您在不同的个人使用的网吧中安装了计算机,那将无济于事.
您还应该使用验证码(对于非注册帐户)来降低投票机的可能性.如果有人想要恶意投多票,让他们更难以通过机器人自动化投票过程将有助于有希望减少此类行为的发生.
所以,你想让每个独特的人对每个项目只有一票.当一个人试图投票之前已经投票的人时,你想要检测到这一点.这意味着您必须识别该人.没有任何技巧可以解决这个问题.
现在,由于人们可以从任何计算机登录,因此识别计算机并没有帮助.这排除了IP检查和cookie,以及基于用户硬件的任何其他内容.
如何识别一个人?你不能.您只能通过提供独特的凭证来强制他们识别自己,例如社会安全号码(我认为这通常在韩国使用),护照号码或类似信息.当然,如果你不检查它,这没有任何帮助,因为任何人都可以组成一个10位数的数字,几乎没有碰撞的机会.
即使具有用户注册并不能真正帮助本身 -他们可以登录其他账号.