如何匿名识别用户并存储该信息

我需要一个简单的用户识别系统,以允许/禁止一个动作

不是一个高安全性要求 ,可以犯错误(例如,同一用户将使用不同的浏览器执行不允许的操作)。

为了减少抽象,让我们看看StackOverflow投票,并假设我们希望允许公众投票 ,但只允许一次。

最简单的方法就是使用cookie :每个答案设置一个新的cookie; 将所有投票存储在一个cookie中(或以某种方式组合这些)。

由于cookie大小/数量限制,这有点不可靠。 它还会一直将cookie发送到网站,而只需要1次操作。

所以从这个角度来看,我想避免使用cookie。
但是,不要在常规HTTP上做得更好。 我不考虑IP / MAC地址等。

因此,根据上述背景,问题是:如何匿名识别用户并将该信息存储在客户端上?

谢谢。

匿名用户识别当然可以以相当高的准确度完成(并且正在完成)。 而不是重新印刷这里的方法,而不是一点阅读,这将完全解决。

首先是EFF关于互联网上用户隐私数学(特别是数据背后的熵)的一点点。 当然是可选的,但它表达了我们正在关注的模型。 如果识别背后的数学不感兴趣,您可以跳过这个。

http://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy

简而言之:只使用浏览器代理,IP地址和其他一个示例中发布的其他数据(panopticlick) http://panopticlick.eff.org/,您很有可能唯一地识别用户(如只要它是同一台机器)而不需要cookie。 有关浏览器检测和唯一性研究的更多信息,请访问:

http://panopticlick.eff.org/browser-uniqueness.pdf

访问panopticlick页面并进行测试。 它将向您展示要查找的内容(并提供示例和如何进行操作的来源),而.pdf将详细说明指纹识别方法的唯一性和细节。

例如,我的系统配置在1,301,578总测试中是唯一的,具有20.38位识别信息(减少熵)。 根据他们的研究,在不使用任何客户端跟踪的情况下,在访问之间识别用户时,您将具有94.2%和99.1%的准确率。

将一个小的唯一标识符作为cookie存储在客户端,然后使用该标识符查找服务器端所需的任何相关会话数据。

MAC地址非常棒,但遗憾的是不可能通过HTTP(对于用户隐私来说是一件好事)。

Cookie和IP地址是您唯一的选择。

您可以在完成后删除cookie,只将其应用于相关路径,或者只需几小时/几天就可以使用它。