防止双重投票

问题描述 投票:6回答:4

我正在创建一个网络应用,用户将通过点击大拇指或大拇指为一些候选人投票,这些用户在网站上没有任何账户。

最好的技术是什么?是否有必要使用验证码来更多地防止垃圾邮件?

投票数预计有几百万,题目不是很关键,只要我的准确率达到95%就可以了。谢谢。

php double vote voting-system
4个回答
5
投票

你可以结合这两种方法。

  • 添加一个cookie来防止同一台机器的多次投票。
  • 记录IP地址,并防止从同一地址进行超过规定次数的投票(例如,同一小时内5次)。

这将使得多人在同一网络中投票成为可能,但仍然可以防止过度作弊。

你也可以通过增加一些隐藏的表单字段,投票时必须包含一个令牌,或者使用Ajax来进行投票,来增加投票机器人的难度。我知道建立一个机器人相对来说比较容易,但大多数作弊者并没有那么聪明。


1
投票

CookiesSession Ids 会有帮助,尽管当浏览器关闭时,两者都会丢失(如果用户启用了删除它们)。不过,它们还是会给你提供一定程度的准确性(例如,懒惰的投票者不会去关闭和重新打开他们的浏览器)。

使用 IP地址 也可以,但正如 @Michael Dillon 所说,同一 IP 地址(同一路由器)的人将无法投票。


1
投票

你有几个选项,其中一些或全部可以使用。

你可以记录IP,然后对照IP进行检查,但这样就不能说明一个具体的人只是一台电脑,有时也不只是一台电脑。

你也可以在用户的浏览器上写一个cookie,但是用户可以使用不同的浏览器、机器等。

在用户的会话中,你可以创建一个会话变量,尽管如果你期待非常高的流量,这可能不是最好的选择,而且也只能防止在同一会话中重新投票。

如果你考虑使用验证码,你可以要求用户提供一个电子邮件地址,这样你就可以保证每个电子邮件地址至少有一次投票。然而,即使这样你也不能保证有效的电子邮件地址。


1
投票

你可以问他们的电话号码,当他们想投票,并向他们发送一次密码,并使用该作为验证.有些我的也从另一个号码投票,但我认为这是最准确的方式。

© www.soinside.com 2019 - 2024. All rights reserved.