2012-05-23 66 views
-2

可能重复:
Unique IPs in a voting system网上投票申请。如何避免重复投票来自同一用户

我开发一个小的web应用程序需要它使用PHP为我的大学活动的在线投票系统。我正在获取IP地址并将其存储在数据库中,以防止来自同一用户的重复投票。但后来我记得我的大学使用代理服务器,所以获得IP地址是没用的。 我试图访问和存储客户端使用JavaScript的Mac地址..我尝试了一些例子,我在互联网上找到..但他们都没有工作。 你们可以向我推荐一种替代方法吗?如何获得我想要的结果?

任何形式的帮助将受到热烈的赞赏。

问候, Aayush什雷斯塔 尼泊尔

+0

我同意。看看科林的链接,你应该找到你正在寻找的答案。 –

回答

1

让他们进入他们的电子邮件地址,并发给他们的电子邮件中的链接,可以让他们去投票。链接应该包括他们电子邮件的一些散列,你将不得不检查他们是否已经投票。

我意识到学生可以输入多个电子邮件地址并进行多次投票,但是学生真正拥有多少封电子邮件?那么他们会花多少时间做这样的事情?

我猜你没有通过大学访问任何类型的认证系统,所以这可能是最好的办法。

编辑:

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

+2

什么是防止用户使用多个电子邮件地址? – Andy

+0

对于无限制的免费电子邮件地址,请参阅http://www.10minutemail.com。 Facebook身份验证(或其他第三方系统)是一个不错的主意。 – apsillers

+0

@安好的电话 - 什么都没有。如果他无法进入他的学院的认证系统,就必须提供一些东西。我只是吐出一些想法,看看他认为是什么*最不好的* :)。就像他说的那样,IP和MAC地址将无法工作,尤其是校园中的代理和计算机实验室。 – lbstr

0

唯一的100%密闭的方式做这将是让用户创建需要一些独特的个人信息,以防止用户拨打多个帐户的帐户。

最接近没有登录系统的是Evercookie库,它在用户浏览器中的十几个不同位置存储UUID。要全部清除它们是非常困难的(即使在浏览器中使用隐私模式),所以如果您在投票时向用户提供Evercookie,您可能会发现之前投票的人。

注意,这将停止机器的水平,而不是用户级别重复投票(一台机器可能haave多个用户,并且用户可以拥有多台机器,这可能使重复投票或阻止合格选民)。

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

  2. 一旦你有一个电子邮件地址(即验证与发送到电子邮件中的激活链接),那么你可以从用户收集投票相关的输入。

实在是防止重复投票的,除非你强制用户证书没有有效的,独立于平台的方式,等