在线投票应用程序.如何避免同一用户的重复投票

Online Voting Application. How to avoid repeated voting from same user

本文关键字:用户 何避免 应用程序 在线      更新时间:2023-09-26

可能的重复项:
投票系统中的唯一 IP

我正在开发一个小型网络应用程序,它需要一个使用 php 的在线投票系统来参加我的大学活动。我正在获取IP地址并将其存储在数据库中,以防止同一用户的重复投票。但后来我想起我的大学使用代理服务器,因此获取 IP 地址毫无用处。我尝试使用javascript访问和存储客户端的Mac地址。我尝试了一些我在互联网上找到的例子。但他们都没有奏效。你们能给我一个替代方案,让我如何获得我想要的结果吗?

任何形式的帮助将不胜感激。

问候阿尤什·什雷斯塔尼泊尔

让他们输入他们的电子邮件地址,并发送一个指向他们的电子邮件的链接,允许他们投票。该链接应包含其电子邮件的一些哈希值,您必须检查他们是否已经投票。

我意识到学生可以输入多个电子邮件地址并多次投票,但学生实际上有多少电子邮件?他们会花多少时间做这样的事情?

我猜你无法通过你的大学访问任何类型的身份验证系统,所以这可能是最好的方法。

编辑:

另一个想法是使用Facebook身份验证(见:http://developers.facebook.com/docs/authentication/(。缺点是你必须假设所有选民都有Facebook帐户。

  1. 首先让用户注册一个电子邮件地址,以便他们可以使用随后与该地址关联的投票系统。

  2. 拥有电子邮件地址(通过发送到该电子邮件的激活链接进行验证(后,您可以从用户那里收集与投票相关的输入。

实际上没有有效的、独立于平台的方法来防止重复投票,除非您强制执行用户证书等。

唯一 100% 密不透风的方法是让用户创建需要一些个人唯一信息的帐户,以防止用户创建多个帐户。

在没有登录系统的情况下,最接近的是Evercookie库,它将UUID存储在用户浏览器中的十几个不同位置。 很难将它们全部清除(即使在浏览器中使用隐私模式(,因此如果您在用户投票时向他们提供 Evercookie,您可能会发现以前投票过的人。

请注意,这会在计算机级别而不是用户级别停止重复投票(一台计算机可能有多个用户,

并且一个用户可能拥有多台计算机,这可能会启用重复投票者或阻止符合条件的投票者(。