首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免作弊的投票算法

避免作弊的投票算法
EN

Stack Overflow用户
提问于 2012-07-30 19:14:02
回答 2查看 281关注 0票数 0

我想建立一个投票网站,像facebook +1的东西。

有没有一些对付作弊的最佳实践?

最好的方法是使用facebook,twitter和/或谷歌来拥有独特的用户,但我想让匿名用户投票。

EN

回答 2

Stack Overflow用户

发布于 2012-07-30 20:45:22

您可以使用某种形式的proof-of-work system来防范大规模的自动作弊。这将需要浏览器在投票中投入一些计算。一次投票应该不会花太长时间,但批量投票将需要大量的计算工作。使用JavaScript进行投票还意味着任何批量投票机制都必须来自支持JavaScript的浏览器(或浏览器仿真),因此生成HTTP请求的简单脚本也会被挫败。

然而,这种方法不会对单个用户手动单击多次造成很大的延迟。因此,将此要求与IP地址日志、用户代理字符串、cookies或闪存cookies结合起来。cookies将有助于识别试图使用一系列连接重复投票的单个拨号用户。尽管上述措施很容易通过大规模的自动作弊攻击规避,但它们应该很好地处理(尽管不是完美的)手动投票。因此,我认为这两种解决方案应该很好地相互补充。

您可能希望阻止像tor这样的匿名网络。但是,阻止应该只影响投票,因为您希望允许匿名用户访问您的站点,对吧?

您还可以考虑要求未经身份验证的用户解决CAPTCHA问题。根据投票的重要性,以及您的用户中有多少未通过身份验证,您的用户可能会因此措施而放弃投票,也可能不会。

票数 2
EN

Stack Overflow用户

发布于 2012-07-30 19:26:09

根据我有限的经验,如果您不需要身份验证,系统很可能会以某种方式被欺骗:没有真正的防弹方法来辨别谁是谁,除非您记录了大量与客户端有关的数据,这些数据在统计上可能被认为是唯一的(但使用这种方法不能达到100%的确定性)。

当然,如果你希望有10个用户,这比你要处理数百万个用户要容易得多。IP +用户代理检查在第一种情况下很可能会很好,但在第二种情况下就不太好了(考虑到not )。

最后,你必须考虑作弊的可能性,或者换句话说:你的用户真的会试图欺骗系统,或者你可以通过检查很容易被伪造的信息而逃脱惩罚吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11720343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档