【发布时间】:2023-03-16 00:24:01
【问题描述】:
加密防止用户检查数据,并且 签名确保会话既不会被劫持,也不会被劫持 被篡改了。
我不清楚为什么会这样。如果窃听者在从服务器发送的 cookie 中获取并在合法用户发出另一个请求之前使用它,那么会话最终不会被劫持吗?
在我看来,真正防止会话劫持的唯一方法是始终使用 SSL。但是,如果我这样做,那么 Yesod 完成的签名和加密最终会成为不必要的开销(编辑:就防止劫持而言的开销。正如 @sr_ 在 cmets 中指出的那样,否则它仍然有用)。
【问题讨论】:
-
此处缓解的威胁是用户更改了 cookie(服务器没有注意到),这是一个在客户端被过度信任时发生的一般问题(通过保存饼干里的东西)。来自hackage:“除了检测 cookie 存储或传输中的潜在错误(完整性)外,MAC 还通过向您保证 cookie 数据确实由该服务器生成(真实性)来避免恶意修改 cookie 数据。”
-
@sr_ 同意。我要解决的问题是这本书声称 cookie 不能被劫持。例如,如果我在我的网站上使用身份验证,但没有在我的所有页面上使用 SSL,在我看来,在适当的情况下,攻击者可以冒充我进入该网站。