该耶索德书说
加密防止用户检查数据,签名确保会话既不会被劫持也不会被篡改.
我不清楚为什么会这样.如果窃听者在从服务器发送cookie并在合法用户发出另一个请求之前使用它时获取cookie,那么会话最终是否会被劫持?
在我看来,真正防止会话劫持的唯一方法是始终使用SSL.但是如果我这样做那么Yesod的签名和加密最终会成为不必要的开销(EDIT:防止劫持的开销.正如@sr_在评论中指出的那样,它仍然有用).
Mic*_*man 24
这是一个很好的捕获.当我们在cookie中包含客户端的IP地址以防止劫持时,这曾经更准确.结合防篡改保护,这使得MITM攻击基本上不可能工作,除非您在相同的路由器后面使用NAT或使用相同的代理.
不幸的是,由于担心代理问题,我们不得不禁用该保护.由于中间代理服务器,单个用户的请求可能来自多个IP地址.我没有数据来说明这种情况发生的频率,但是有足够的担心这个安全功能导致我们禁用它的破坏.
谢谢你提出这个问题,我已经纠正了这本书.