【发布时间】:2013-07-29 12:52:50
【问题描述】:
我正在构建一个会话控制库,旨在在会话存储上实现一种(有限的)安全形式,以防止会话劫持(没有 SSL)。
它通过设置一个 nonce cookie 来工作,该 cookie 在每个请求上都会更改为一个随机字符串。到目前为止,它运行良好,并且我想出了一个基本的方法来保持会话数据在连接过早超时并且 cookie 无法到达客户端时保持有效。它通过保留设置的最后一个 nonce 来做到这一点,如果旧的 nonce 就位,它不会更新它。它也仅在几秒钟内有效。
但这确实提供了一个小的安全漏洞,可能会被黑客利用一小段时间来利用,我现在正试图堵住这个漏洞。
到目前为止,我能确定的最好方法是通过某种方式检查连接是否持续了足够长的时间,以便将 cookie 发送到客户端。我查看了connection_handling,但我不确定cookie 是否已通过网络发送(即使在setcookie 时状态为normal)或已被浏览器接受。
那么,有没有什么方法可以确认客户端浏览器上是否设置了cookie,而无需等待客户端发出另一个请求?
【问题讨论】:
-
没有。只有发回 cookie 数据的浏览器才能确认它有 cookie 数据,其他的只是希望它有它
标签: php session-cookies session-hijacking