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