1

我编写了一个简单的自定义会话处理程序(在 MySQL 中,但这不相关),它只是将序列化的会话数据、会话 ID 和当前时间保存到表中。

虽然会话存在,但会话 id 对攻击者来说就像密码一样有价值,这让我相信我应该以某种方式对其进行加密。

是否值得在将会话 ID 存储到数据库之前对其进行哈希处理,以迫使攻击者暴力破解会话 ID 以伪造 cookie?

我的站点已经对所有连接使用 HTTPS。

4

1 回答 1

0

因此,您要防止的是,如果攻击者从您的数据库中访问会话 id 的转储,他可以冒充任意用户,因为他可以按原样使用会话 id。为此,以与哈希密码相同的方式对 id 进行哈希处理实际上是一个非常好的主意,因此可以进行单向查找,但哈希值本身已变得无用。由于会话 ID 通常也会很快过期,因此暴力破解几乎没有用处。

另一方面,由于会话 ID 通常会很快过期,因此一开始可能没有太多意义。攻击者的机会之窗非常小。攻击者能够从您的数据库中获取会话 id 转储这一事实的重量要重得多,而且是更严重的破坏,因为这意味着攻击者可能已经可以访问其他数据。

它仍然是一个有价值的防御,几乎没有缺点(轻微的计算开销,会话 id 的调试稍微复杂一些)。

于 2012-09-25T12:41:36.313 回答