因此,有了Firesheep,公共Wi-Fi中的每个人现在都有了一个一键会话劫持工具。
据我所知,它的工作方式是简单地捕获所有流量并获取会话cookie (这样它就不会窃取密码)。
根据我的理解,这也意味着HTTPS安全登录不能单独解决这个问题,因为进一步的HTTP流量将再次以明文包含会话Cookie。
由于有了NAT,将会话绑定到特定的IP地址是没有用的,并且将其绑定到用户代理很容易被欺骗。
那么,100%的HTTPS是防止这种类型的会话劫持的唯一方法吗?难道人们不能简单地嗅探整个HTTPS流量,包括握手,或者这些东西是安全的吗?(我正在考虑重放攻击,但对此一无所知。)
当然,不使用公共/开放的Wi-Fi网络是更好的选择,但我仍然感兴趣的是网站开发人员可以做些什么来保护他/她的用户。
发布于 2010-10-26 02:04:18
Firesheep不是什么新鲜事。自从web应用程序使用会话ID以来,会话劫持就一直存在。通常,黑客只需在地址栏中输入以下内容即可设置自己的cookie:javascript:document.cookie='SOME_COOKIE'。这个工具是为害怕一行JavaScript的脚本孩子们准备的。
如果在会话的整个生命周期中不使用HTTPS,那么Cookie可能会被劫持,而这是OWASP A9 - Insufficient Transport Layer Protection的一部分。但是您也可以使用XSS劫持会话。
1)使用httponly cookies。
2)使用"secure cookies“(可怕的名称,但它是一个强制浏览器只制作cookie HTTPS的标志。)
3)扫描web应用程序中的XSS。
另外,不要忘记CSRF!( Firesheep没有解决这个问题。)
发布于 2010-10-26 04:26:44
Rook已经回答了其中的一部分,我只回答你问题的其他部分。
在任何时候都是100%HTTPS是防止这种类型的会话劫持的唯一方法?
没错。100% HTTPS是唯一的方法。100%是关键。
难道人们不能简单地嗅探整个HTTPS流量吗,包括握手,或者这些东西是安全的吗?
?(我正在考虑重放攻击,但对此一无所知)
HTTPS具有内置的防重放攻击功能。如果正确实现,HTTPS是真正安全的。
即使正确实现了HTTPS,也有办法绕过它。SSL Strip就是这样一个工具。该工具没有使用SSL,它只是利用了这样一个事实,即人们总是在url中输入mybank.com而不是https://mybank.com。
发布于 2016-05-12 16:32:34
我相信SSL很便宜,而且是一个完整的解决方案。但是,直到你没有它或寻找一些额外的层,这里是如何保护你的SESSIOn数据。
一如既往,在部门防守是要走的路。1使用会话存储用户登录数据2如果管理员登录也检查数据库,可能会慢一点,但由于有少量管理员和rest是用户,这是一个可行的安全加分。第三,保护您的会话<=!
会话保护:将会话启动放到一个目标文件中,在该目标文件中,您可以在自构造上调用"is_session_valid()“函数。此函数将检查$_SERVER超级全局的(IP /时间/浏览器),并将它们存储在会话中。在下一次加载时,查看值是否相同,如果不浪费更多资源,则注销用户并显示索引页面。
这不是一个完整的解决方案,因为它可能是同一网络上的相同浏览器,例如,有很多用户的Wifi和会话劫持也可能是最近(在时间上)。但在不使用SSL之前,这总比什么都不使用要好。无论如何,很少发生受害者和劫机者使用相同的everything....so,这有效地减少了成功攻击的机会,即使没有任何安全套接字层!
最初的想法由Kevin Skoglund提出,如果你对保护你的应用程序不感兴趣,请参阅他的安全PHP教程。https://www.lynda.com/PHP-tutorials/Creating-Secure-PHP-Websites/133321-2.html
附注:需要使用其他几种防御措施(至少是CSRF)才能获得某种程度上的安全AP
再见:-)
https://stackoverflow.com/questions/4017344
复制相似问题