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


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

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

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

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

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

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

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

谢谢。


12119
2017-12-14 23:39


起源

除了cookies,我没有看到任何其他方式。会话ID等显然不起作用。但是,您可以使用启发式识别浏览器,ip,尽可能多的信息,无论用户是否唯一。但对于像Uni实验室或具有共享IP和相同软件库的其他地方的环境,这可能会失败。 - Jules
我最近测试了这个理论,即使使用共享软件库,用于指纹识别的唯一可识别数据量也令人惊讶。我对国防部进行了测试 - 我对其他可能控制环境重复的人感兴趣。这对我的硕士论文来说很有用。 - iivel


答案:


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

首先是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%的准确率。


7
2017-12-15 00:14



很好的信息,谢谢。但是你会怎么做呢 存储 那个客户的信息? - Dmytrii Nagirniak
我错过了问题的最后一句,我不得不问在客户端存储的要求是什么。使用浏览器指纹识别,您可以在服务器端存储信息,并且它对客户端完全透明/匿名。 - iivel
嗯。这是另一种方法。在服务器上存储该信息应该确实可以完成工作。我只是不想用客户信息“污染”服务器数据。但绝对你的建议应该很好地完成这项工作。 - Dmytrii Nagirniak


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


3
2017-12-15 00:30



这不是我在问题中谈论的吗?不要得到答案。 - Dmytrii Nagirniak
你的论点是关于cookie的大小,因此这可以在cookie中发送大量数据。您发送少量数据,而不是发送大量数据。也许你需要重新解释这个问题。 - Matt Huggins
如何向未知数量的信息发送少量数据:存储在用户投票的所有答案的cookie ID中。我的原始示例没有提供足够的上下文吗? - Dmytrii Nagirniak
那不是我说的。将一个ID存储在代表用户的cookie中。您永远不会在其Cookie中添加多个ID。该ID可以在您的服务器上引用到他们在那里评定的任意数量的评级。你显然不熟悉会话的基本概念。 - Matt Huggins
我没有告诉你存储用户ID,我告诉你要生成一个唯一的临时ID,例如UUID或其他一些独特生成的值。如果访问者有一个带有UUID的cookie,那么您可以匿名识别它们。如果他们没有该cookie,那么给他们一个,然后您可以识别它们以供将来的页面访问。 - Matt Huggins


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

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

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


1
2017-12-14 23:50