如何在网站上支持匿名?

时间:2014-02-25 13:42:03

标签: php privacy voting-system anonymity

我正在建立一个网站(使用PHP,JavaScript和MySQL),投票系统允许人们匿名投票,但只有一次。

这意味着我的系统必须知道谁投票(因为我必须检查用户是否已经投票)但我不想将用户名或用户的IP地址存储在数据库中(破坏了匿名性) )。我不知道怎么开始,我需要一些指导;我应该寻找什么?

2 个答案:

答案 0 :(得分:5)

你最糟糕的问题是如何确保你的用户只投票一次,但这不是问题的关键:你问的是如何确保不相干

这很容易:将您用于单一投票的任何内容视为密码,并将其哈希。因此,为了论证,您可以使用IP。我知道这个问题,但我们假设这是你的选择。

  • 用户投票
  • 您对IP进行哈希并保存。
  • 您甚至可以将其保存在其他位置。甚至不需要保存哪个哈希投票选择哪个选项。
  • 用户再次投票 - > IP-hash已经在数据库中。
  • 如果有人已经投票,不要放弃,不要回答“你已经投票”,但只是不保存投票。这种方式甚至无法知道这台机器是否有投票

请注意,这是关于不相关的,而不是关于如何确保单一投票。

答案 1 :(得分:1)

正如Lix所说,真正唯一的方法是在不存储IP地址或强制用户注册的情况下存储链接到会话的Cookie,但当然这绝不是一个解决方案,因为可以很容易地清除Cookies

您可以尝试使用持久性Cookie解决方案,例如evercookie,但如果我是实现类似内容的网站的用户,那么除了必须注册之外,它还会让我烦恼,无论如何使用方法时,可以始终绕过这些方法来删除Cookie /识别信息。

另一种可能性是持续性Cookie的另一种形式,它去年得到了很多宣传(或者是2012年 - 我忘了),它利用Flash来存储Cookie。可以在多个浏览器中访问这些Cookie。一个这样的解决方案是flash-cookie,但同样,这可能会惹恼用户,并且不会100%可靠,因为并非所有用户都启用了Flash或安装了Flash。