What is the best way to identify a client within PHP?
Obviously an IP-address wouldn't be safe nor would it distinguish multiple clients coming from the same IP-address.
I don't want to use sessions.
What is the best way to identify a client within PHP?
Obviously an IP-address wouldn't be safe nor would it distinguish multiple clients coming from the same IP-address.
I don't want to use sessions.
感谢上帝,没有唯一的ID可以跟踪我们的浏览器。因此,您必须将您对身份识别的愿望限制在单纯的 cookie 上。
我真的很喜欢smassey的 FingerPrinting 建议(上图)。我们的问题是,因此我们将输入错误凭据的人锁定 N 次,而不是锁定其他任何人。我们需要从客户端工作站知道一些我们可以依赖的东西,这告诉我们一些独特的东西。如果没有 HTTP 代理,IP 地址有效。代理混淆了这一点。我们不是在寻找用户的真实姓名或任何私人信息,而是将坏人/女孩拒之门外。好消息是它无需会话,无需 cookie,即使更改浏览器也能正常工作。不确定我们将使用哪些参数,但我将在 PHP 中查看可用的参数。我想知道主本地存储上的总空间是否可用。Mac 和 Linux 的兼容性现在是必须的。
除了 cookie/会话(基于唯一的 id'd cookie),您唯一的选择称为“指纹”。这个想法是从关于客户端的多个小细节中提取浏览器指纹。一个非常简单的例子是:
$unique_id = md5( $client_ip . $client_user_agent );
当您结合以下详细信息时,这可能比大多数人想象的更准确:java vm 版本、flash 版本、安装的字体……当您可以访问内容页面本身时所有可用信息。当然,破解指纹就像更新到新的 Flash 播放器一样容易,但对于短暂的无 cookie 会话,指纹就可以了。