Yesod book说
我不清楚为什么会这样。如果窃听者掌握了从服务器发送来的cookie并在合法用户发出另一个请求之前使用它,那么 session 是否最终会被劫持?
在我看来,真正防止 session 劫持的唯一方法是始终使用SSL。但是,如果我这样做,那么Yesod进行的签名和加密最终将成为不必要的开销(编辑:就防止劫持而言的开销。正如@sr_在注释中指出的那样,否则它还是有用的)。
最佳答案
这是一个很好的收获。当我们将客户端的IP地址包含在cookie中以防止劫持时,此方法过去更为准确。结合防篡改保护,这使得MITM攻击基本上不可能起作用,除非您在同一路由器后面或使用同一代理进行NAT转换。
不幸的是,由于对代理的担忧,我们不得不禁用该保护。由于中间代理服务器,单个用户的请求可能来自多个IP地址。我没有数据可以说明这种情况的发生频率,但是对此安全功能引起的破坏引起了足够的关注,因此我们将其禁用。
谢谢您提出这个问题I've corrected the book。
关于security - 为什么不能劫持Yesod session cookie?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26927741/