我刚开始阅读有关 cookie 的所有内容,以及我可能弄错它们并允许 cookie 被劫持的所有方法,这允许攻击者执行诸如冒充登录用户之类的操作。
我不明白为什么不能通过简单地让服务器向每个 cookie 添加由 cookie 的其余部分确定的签名、服务器上的密钥以及发出请求的人的 IP 来解决这个问题。对于无法在该 IP 上收到响应的任何人,被盗的 cookie 将几乎毫无用处。被盗 cookie 本身中的任何可读数据仍然可以访问,但被盗 cookie 不能用于冒充他人。
为什么这不起作用?是否有某种方法可以接收绑定到您无法控制的 IP 地址的数据包?我知道在我的本地网络上,我可以读取用于本地网络上其他计算机的数据包,但我认为没有任何方法可以将用于 stackoverflow.com 的所有数据包的副本发送到我的住宅 IP。
如果这是我们唯一的安全手段,您仍然可以发送欺骗性请求,但您无法欺骗服务器将任何内容发送回您自己的 IP(我认为),这似乎仍然有用。
我在谷歌上没有找到任何关于将 cookie 与 IP 相关联的信息,所以我认为这不起作用,但我不知道为什么。