我已经写了一个简单的自定义会话处理程序(在MySQL中,但这不相关),它只是将序列化会话数据,会话标识和当前时间保存到表中。在自定义处理程序中保护PHP会话ID
虽然会话存在,但会话ID与攻击者的密码一样有价值,这使我相信我应该以某种方式加密它。
将数据存储到数据库之前,为了强制攻击者强制使用会话ID伪造cookie,是否值得对其进行散列处理?
我的网站已经对所有连接使用HTTPS。
我已经写了一个简单的自定义会话处理程序(在MySQL中,但这不相关),它只是将序列化会话数据,会话标识和当前时间保存到表中。在自定义处理程序中保护PHP会话ID
虽然会话存在,但会话ID与攻击者的密码一样有价值,这使我相信我应该以某种方式加密它。
将数据存储到数据库之前,为了强制攻击者强制使用会话ID伪造cookie,是否值得对其进行散列处理?
我的网站已经对所有连接使用HTTPS。
所以你要防止的是,如果攻击者从你的数据库访问会话ID的转储,他可以摆出任意用户的身份,因为他可以按原样使用会话ID。对于这一点来说,以散列密码的方式散列id实际上是个不错的主意,所以单向查找是可能的,但散列值本身已变得毫无用处。由于会话id通常很快就会过期,因此在暴力破解中几乎没有用处。
另一方面,由于会话id通常非常快速过期,因此可能没有多少指向。攻击者的机会之窗非常小。攻击者能够从数据库中获得会话id的转储的重要性更加严重,并且是一种更糟糕的攻击,因为这意味着攻击者可能已经可以访问其他数据。
它仍然是一个值得保护的小缺点(轻微的计算开销,稍微复杂的会话ID调试)。
在stackoverflow上会话ID是“加密”吗?您需要防止来自多个客户端的同一会话的恶意使用,而不是标识符本身。 – zerkms
@zerkms,除非我能读懂会话表,否则我不会知道。 – Martin
因此您的网站上的用户可以阅读会话表? – zerkms