PHP 会话劫持安全性



我对此做了相当多的研究。不幸的是,我找到的信息实际上都没有用。我正在研究会话劫持的特定案例,因为我已采取措施保护我的会话,但这个我无法弄清楚。

我设置的安全措施是我在会话启动时采集了浏览器指纹:

$_SESSION['fingerprint'] = $_SERVER['HTTP_USER_AGENT'];

每次请求会话时,我都会执行检查

if($_SESSION['fingerprint'] != $_SERVER['HTTP_USER_AGENT']) // Handle accordingly

因此,启用httpOnly后,除了欺骗具有不安全连接或任何其他类型连接的 wifi 路由器之外,会话劫持并没有太多,攻击者将知道所有请求标头,因此指纹的复杂性根本不重要。如果攻击者要复制受害者的所有请求标头,我如何仍能保护会话?

你不能。一堆HTTP标头,其中cookie是其中之一,是唯一标识客户端的东西。复制/欺骗所有标头意味着模拟用户。在公共的匿名连接上,你真的无能为力了。如果你需要更多的东西,你必须开始向带外客户端分发实际的机密,比如客户端SSL证书。不过,这并不实用。

在实践中,如果您使用 SSL 连接保护您的连接免受中间人的侵害,这是尽可能实用和安全的。

最新更新