1
11
最好是不允许匿名投票。如果用户被强制登录,您可以在每次投票时保存用户ID,并确保他/她只投票一次。 cookie方法非常脆弱,因为cookie很容易被删除。IP地址方法有您自己描述的缺点。 |
2
3
向用户认证系统迈出一步,但并非所有的复杂之处: 让用户输入他们的电子邮件地址并确认他们的投票,你不会根除游戏,但你会使玩家更难注册另一个电子邮件地址,然后投票等。 可能值得多走一步。 让我们知道你的目的。 |
3
3
如果你想带着饼干走,那就用一个 evercookie .
当然,多浏览器作弊不会受到影响。 |
4
3
你想保护自己不受什么类型的游戏影响?有人创建了几个机器人程序,用成千上万的请求轰炸你?或者一个没有更好的事情要做的人,尝试10-20票? 是的,我知道:两者都有——但你最关心的是哪一个? 使用验证码和基于电子邮件的投票 (发送一个链接到电子邮件以验证投票)可能对机器人程序很有效。但是人类或多或少可以利用电子邮件系统(正如我在一个答案中的评论,然后在这里再次发布)
为了防备人类,我不知道有没有饼干,但这可能是个不错的选择。 使用与Twitter、FB和其他网络集成的OAuth也可能工作得很好。 另外,记住:要求某人投票的电子邮件会吓跑许多人!你的选票会少很多! 另一个选择是 限制系统接受的投票数 从每分钟(或每小时或任何其他时间)的每个IP。为了防止分布式攻击,请限制系统在一个时间段内接受的投票总数。 |
5
1
不同的方法,只是为了提供另一种选择: 假设大多数人都知道如何行事,或者只是不想为行为不端而烦恼,那就追溯性地清理选票。这也会使投票对选民保持低调。 所以,设置cookie,记录每次投票,然后(或者在一个时间间隔上?)根据cookie值、IP/UserAgent组合等检查结果并删除重复项。 我假设不主动阻止同一个人的多个投票,会将高技术规避方法的使用降到最低,而且结果很容易清理。 作为一个反面,你可能无法在用户界面上实时显示实际的投票数,或者当一堆投票恰好丢失时会引起人们的注意。 |
6
1
虽然我自己可能不会这么做,但是看看这些饼干,它们很难摆脱: 我处理这个问题和打击投票欺诈的另一种方式是要求一个电子邮件地址,然后一个人仍然可以投票,但是投票不会计算,直到他们点击电子邮件中的链接。这比完全注册更容易,但在消除大多数欺诈性投票方面仍然非常有效。 |
7
1
如果不想强制用户登录,请考虑此Eng饼干,但强制Java脚本启用日志记录! 这个Eng饼干是微不足道的,因为它是基于Java脚本的。攻击者不太可能使用浏览器,通过curl他可以生成toussends请求。hower这样的工具通常对javascript的支持很差。 邮件更容易作弊。当你运行你自己的服务器时,你可以接受所有的电子邮件地址,所以你将拥有几乎无限的地址池。 |