在Web 2.0应用程序中,许多用户通常希望保持登录状态("记住我"标志),另一方面,他们的cookie可以访问非常私密的数据.有没有办法防止那些窃取cookie的人 - 直接从计算机或通过嗅探 - 可以使用cookie来访问用户的数据?始终HTTPS不是一个选项.
谢谢,伯恩德
[编辑]也不能选择将IP地址连接到cookie.
KISS - 只使用会话,以便您使用已由您选择的服务器端脚本语言自动创建的ID.这很难猜到.然后,如果它是偷来的,存储在会话的IP地址和访问者的用户代理(确保永不输出),并只考虑会话有效期只有在已经存储的 IP地址和用户代理匹配被发现的远程客户端.
在这种情况下,攻击者必须执行以下三项操作:
偷走受害者的饼干
欺骗正确的IP地址
欺骗正确的用户代理
它还有助于确保攻击者不知道他/她为了正确接管受害者的会话而必须做的所有事情.IE:他们可能会假设只需要cookie然后失败......并且必须通过非常长的试验和错误来弄清楚其他所有内容.通过这种方式,您可以通过默默无闻和困难获得安全性,具体取决于攻击者的技能和他/她对系统的现有知识.
Bernd - 通过标准HTTP完成任何事情的麻烦在于它是明文; 任何人都可以伪装.IP欺骗比纯粹的cookie窃取更具挑战性,因此与IP绑定往往是人们所做的.就像你说的那样,这对于高度动态的环境来说效果不佳.
我能想到的唯一最安全的方法是使用HTTPS来放置和验证"永久"cookie,然后放置(在同一个HTTPS会话中)一个短期会话cookie.其余的通信可以通过常规HTTP完成,使用会话cookie进行身份验证.
这样,在支持加密(仅握手)时使用的资源就更少,永久性cookie不会暴露 - 它只在加密下传输 - 并且窃取会话cookie只会带来有限的风险,因为该cookie将很快过期.
所有这一切 - 不要让用户在包含真正敏感数据的网站上点击"记住我"!这就是为什么班克斯不这样做..
希望这可以帮助.