PHP Session劫持安全性

时间:2014-01-04 15:09:02

标签: php security session

我对此做了很多研究。不幸的是,我发现的所有信息都没有用。我正在研究一个特定的会话劫持案例,因为我已经采取措施保护我的会议,但这个我无法弄明白。

我设置的安全措施是我在会话开始时采用了浏览器指纹:

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

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

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

因此,启用httpOnly除了欺骗带有不安全连接的wifi路由器或任何其他类型的连接侦听之外,没有太多的会话劫持,攻击者会知道所有请求头,因此复杂性指纹无关紧要。如果攻击者要复制他受害者的所有请求标题,我怎么能保护会话?

1 个答案:

答案 0 :(得分:2)

你做不到。一堆HTTP标头(其中一个是cookie)是识别客户端的唯一标头。复制/欺骗所有标头意味着冒充用户。在公共的匿名连接上,你无法做到这一点。如果您还需要更多内容,则必须开始向客户端带外发送实际机密,例如客户端SSL证书。但这并不实用。

在实践中,如果您使用SSL连接保护您的中间人与中间人的连接,这是实际和安全的。