在PHP中识别客户端的最佳方法是什么?
显然,IP地址不安全,也不会区分来自同一IP地址的多个客户端。
我不想要使用会话。
答案 0 :(得分:6)
感谢上帝,有 NO 唯一ID来跟踪我们的浏览器。因此,您必须将识别的愿望限制在单纯的cookie中。
答案 1 :(得分:1)
除了cookies /会话(基于唯一ID的cookie),您唯一的选择称为“指纹识别”。我们的想法是从已知的客户端的多个小细节中制作浏览器指纹。一个非常简单的例子是:
$unique_id = md5( $client_ip . $client_user_agent );
当您组合以下详细信息时,这可能会比大多数人想象的更准确:java vm版本,Flash版本,已安装的字体,...当您可以访问内容页面本身时所有可用信息。当然,打破指纹变得像更新到新的Flash播放器一样容易,但对于短暂的无cookie会话,指纹可以解决问题。
答案 2 :(得分:1)
我非常喜欢 smassey 对FingerPrinting的建议(上图)。我们的问题是这样做,所以我们会锁定输入错误凭据N次的人,而不是锁定其他任何人。我们需要从客户端工作站了解一些我们可以依赖的东西,告诉我们一些独特的东西。如果没有HTTP代理,则IP地址有效。代理人混淆了这一点。 我们不是在寻找用户的真实姓名或任何私人信息,而是将坏人/女孩锁定。 好消息是它没有会话,没有cookie,即使他们更改浏览器也能正常工作。 不确定我们将使用哪些参数,但我将在PHP中查看可用的内容。我想知道主本地存储上的总空间是否可用。如今,Mac和Linux的兼容性是必须的。