我正在开展基于网络的比赛,该比赛应允许匿名用户投票,但我们希望阻止他们多次投票。可以使用匿名代理绕过基于IP的限制,用户可以清除cookie等。可以使用可以访问独立存储的Silverlight应用程序,但用户仍然可以清除它。
如果没有一些小丑用机器人或其他东西投票,我认为不可能做到这一点。有个主意吗?
答案 0 :(得分:19)
简短的回答是:不。更长的答案是:但你可以任意地使它变得困难。我会做什么:
这些方法都不是100%,但希望它们能够为您提供所需的保证。如果你想把这个级别提高一些,你需要添加某种用户注册(这可以像在投票时询问有效的电子邮件地址一样简单,并向给定的地址发送确认链接而不计算没有点击链接的投票 - 所以它不需要是一个完整的“创建一个用户名/密码/冷杉名称/姓氏/等等的帐户”。)
答案 1 :(得分:1)
不,你不能,只需要一个人和一个愿意参与change the outcome of an online vote的论坛。
你必须意识到在线投票的固有缺陷,而不是试图绕过它们试图利用它们来发挥你的优势。
- 亚当
答案 2 :(得分:0)
不,这是用户的电脑,他们掌控着。 不幸的是,唯一的解决方案是将它带回你的法庭,以便发言并要求认证。
但是,CAPTCHA至少可以限制对人类用户的投票。
当然,即使使用身份验证,您也无法强制执行单一投票,因为他们会让机器人注册...
答案 3 :(得分:0)
你当然可以让它变得困难。
如何使用IP地址,浏览器使用者,计算机名称以及您可以获得的任何其他信息来构建用户配置文件。
为每个用户存储配置文件,然后如果您收到的配置文件与数据库中已有的配置文件相似(您必须对其进行调整),则可以抛弃该投票。
我想你可以使用silverlight构建一个更好的配置文件,但我不确定哪些信息可以让你访问。
答案 4 :(得分:0)
客户端解决方案出于您列出的原因 - 用户可以操纵它们。服务器端解决方案 - 如你所说 - 可以被愚弄和绕过。
如果您愿意接受这样一个事实,即您无法100%确定每人获得一票,那么您可以采取一些措施来降低噪音。
这是一个好的开始。
答案 5 :(得分:0)
我在比赛开发和监控方面的个人经验告诉我,不,如果你让匿名用户投票(或做任何让他们参加比赛的事情),就没有可靠的方法可以避免作弊。
你可以使用IP,在动作和下一个动作之间引入延迟,但这真的很难:最好的方法是引入验证码或类似的东西,如果适用于你的特定情况。
最重要的是,不要让匿名用户参与:让他们“玩”并访问模拟,但比赛需要登录。
答案 6 :(得分:0)
我必须同意,简短的回答是否定的......但如果你看看我最近的回答:How to anonymously identify a user and store that information你当然可以在6%的误差范围内得到它。