可能重复:
投票系统中的唯一 IP
我正在开发一个小型网络应用程序,它需要一个使用 php 的在线投票系统来进行我的大学活动。我正在获取 IP 地址并将其存储在数据库中,以防止同一用户重复投票。但后来我想起我的大学使用代理服务器,所以获取 IP 地址是没有用的。我尝试使用 javascript 访问和存储客户端的 Mac 地址。我尝试了一些在互联网上找到的示例。但没有一个有效。你们能建议我如何获得我想要的结果吗?
任何形式的帮助将不胜感激。
问候, Aayush Shrestha 尼泊尔
可能重复:
投票系统中的唯一 IP
我正在开发一个小型网络应用程序,它需要一个使用 php 的在线投票系统来进行我的大学活动。我正在获取 IP 地址并将其存储在数据库中,以防止同一用户重复投票。但后来我想起我的大学使用代理服务器,所以获取 IP 地址是没有用的。我尝试使用 javascript 访问和存储客户端的 Mac 地址。我尝试了一些在互联网上找到的示例。但没有一个有效。你们能建议我如何获得我想要的结果吗?
任何形式的帮助将不胜感激。
问候, Aayush Shrestha 尼泊尔
让他们输入他们的电子邮件地址,并向他们的电子邮件发送一个链接,以便他们投票。该链接应包含他们电子邮件的一些哈希值,您必须检查他们是否已经投票。
我意识到一个学生可以输入多个电子邮件地址并多次投票,但一个学生真正拥有多少封电子邮件?他们会花多少时间做这样的事情?
我猜你无法通过你的大学访问任何类型的身份验证系统,所以这可能是最好的方法。
编辑:
另一个想法是使用 Facebook 身份验证(参见:http: //developers.facebook.com/docs/authentication/)。缺点是你必须假设所有选民都有脸书账户。
唯一 100% 无懈可击的方法是让用户创建需要一些个人唯一信息的帐户,以防止用户创建多个帐户。
最接近没有登录系统的是Evercookie库,它将 UUID 存储在用户浏览器的十几个不同位置。很难将它们全部清除(即使在浏览器中使用隐私模式),因此如果您在用户投票时将 Evercookie 提供给用户,您可能会发现以前投票过的人。
请注意,这会停止机器级别的重复投票,而不是用户级别(一台机器可能有多个用户,并且一个用户可能有多个机器,这可能会启用重复投票者或阻止符合条件的投票者)。
首先让用户注册一个电子邮件地址,以便他们可以使用随后与该地址关联的投票系统。
一旦您有了一个电子邮件地址(通过发送到该电子邮件的激活链接进行验证),您就可以从用户那里收集与投票相关的输入。
除非您强制执行用户证书等,否则实际上没有有效的、独立于平台的方法来防止重复投票。