唯一识别用户的最佳方式

时间:2010-10-13 10:21:31

标签: php session cookies

我正在构建喜欢/不喜欢的功能。为此,我需要确定喜欢或不喜欢帖子的特定用户。我有一个想法,没有用户登录这不能完美,但最接近完美的技术,我有的问题如下所述:

  • Cookie可以被清除,并且从浏览器到浏览器不等
  • 大多数用户没有专用的公共IP,他们的IP会随着每个会话而不断变化
  • Cookie和IP的组合也可能无法达到目的

我应该使用哪种技术来实现它?

我使用的语言是PHP

7 个答案:

答案 0 :(得分:10)

最近我读了一篇关于这个问题的文章,并对这项任务有多少种方法感到惊讶。知识产权和饼干只是“冰山一角”。 查看生成“极端持久性cookie”的evercookie,js库。

答案 1 :(得分:3)

我认为最好仍然是一个cookie,不完美,但如果你不想使用登录机制,cookie是最好的。

答案 2 :(得分:2)

登录将是最好的,但如果您不能遵循该路线,您可以使用cookie,IP和其他元素的组合。 通过足够大的参数组合,您可以准确地识别用户(即使不是100%)。

This非常有趣,可以指出你正确的方向。

答案 3 :(得分:2)

如果有足够的信息,您应该能够唯一地识别大多数浏览器。这并不能阻止人们更改浏览器。以下链接解释了更多内容。

https://panopticlick.eff.org/

最好的办法就是将facebook整合为。

答案 4 :(得分:0)

您无法真正获得用户的完美唯一身份。简单地想象一个用户拥有两台独立的计算机,这些计算机具有独立的浏您将无法将其两个连接标识为来自同一用户。

一旦你接受了这一点,你就可以按照自己的意愿去做。 Cookie通常很好用,因为虽然可以清除它们,但许多用户并没有真正清除它们。如果您担心滥用用户,IP会为您提供更好的服务。

此外,您可以包含浏览器的用户代理等。您包含的识别线索越多,欺骗系统就越困难。但是,您应该记住,您可以花费大量精力,但无论如何都永远无法获得完美的解决方案。

答案 5 :(得分:0)

让我们考虑所有识别选项:

无法使用IP:您无法控制服务器和浏览器之间的所有NAT和动态IP。
可以使用cookies :您几乎可以完全控制它们。 (这里最好的选择)
可以使用某种“用户”标识:但您不想在此处使用它们。相反,你可以使用它的一些变体。使用输入它的电子邮件ID。没有用户输入,我想不出任何其他用户身份。

答案 6 :(得分:0)

如果您还没有,您应该看到 flash cookies 必须提供的内容 - http://en.wikipedia.org/wiki/Local_Shared_Object

在我看来,这些最接近你所需要的。