HTTPS是在开放networking中防止会话劫持的唯一防御措施吗?
因此,借助Firesheep ,公共Wi-Fi中的每个人都拥有一键式会话劫持工具。
根据我的理解,它的工作方式是简单地捕获所有stream量并抓取会话cookie(因此不会窃取密码)。
根据我的理解,这也意味着HTTPS安全login不能单独解决这个问题,因为进一步的HTTP通信会再次以明文forms包含会话Cookie。
将会话绑定到一个特定的IP地址是没有用的,因为NAT,绑定到用户代理很容易被欺骗。
那么100%HTTPS在任何时候都是防止这种会话劫持的唯一方法吗? 难道人们只是嗅探包括握手在内的整个HTTPSstream量,还是这个东西安全? (我正在考虑重播攻击,但在这方面没有任何知识。)
当然,不使用公共/开放的Wi-Finetworking是更好的select,但是我仍然对网站开发者可以保护他/她的用户感兴趣。
Firesheep 并不是什么新鲜事 。 只要Web应用程序使用会话ID,会话劫持就已经存在了。 通常,黑客只需在地址栏中input以下内容即可设置自己的cookie: javascript:document.cookie='SOME_COOKIE'
。 这个工具是脚本小子害怕1行的JavaScript。
如果您在会话的整个生命周期中不使用HTTPS,则Cookie可能被劫持,这是OWASP A9 – 传输层保护不足的一部分。 但是你也可以用XSS劫持会话。
1)使用httponlycookies 。
2)使用“ 安全cookie ”(可怕的名字,但它是一个标志,迫使浏览器只有cookie的HTTPS。)
3)扫描您的Web应用程序的XSS。
也不要忘了CSRF ! (哪个Firesheep没有解决。)
这个Rook已经回答了一些问题,我会回答你的问题的其他部分。
是100%HTTPS在任何时候防止这种types的会话劫持的唯一方法?
那就对了。 100%的HTTPS是唯一的方法。 而100%是关键。
难道人们只是嗅探包括握手在内的整个HTTPSstream量,还是这个东西安全? (我正在考虑重播攻击,但在这方面没有任何知识)
HTTPS具有防止重放攻击的内置保护。 如果正确实施,HTTPS是真正安全的。
即使HTTPS正确实施,也有办法绕过它。 SSL Strip就是这样一个工具。 该工具不利用SSL,它只是利用了人们总是在url中inputmybank.com而不是https://mybank.com 。
我相信SSL是便宜和完整的解决scheme。 但是,直到你没有它或寻找一些额外的层这里是如何保护你的SESSIOn数据。
总是在部门防守是要走的路。 第一次使用会话来存储用户login数据第二如果pipe理员login也检查数据库,可能会减慢一点,但因为有less量的pipe理员和rest是用户这是一个可行的安全加。 第三保护你的会话<=!
会话保护:将会话开始放到一个对象文件中,在该对象文件中,您可以在自身构造上调用“is_session_valid()”函数。 这个函数将检查$ _SERVER超全局的(IP / TIME / Browser),并将它们存储在会话中。 上一个下一个负载看看是否值相同,如果不是没有更多的资源注销用户和显示索引页面。
这不是一个完整的解决scheme,因为它可能是同一个networking上的相同的浏览器,例如有很多用户和会话劫持的Wifi也可能是最近的(及时的)。 但是,直到没有使用SSL这是远远更好,然后什么都没有。 无论如何很less发生,受害者和劫机者使用相同的一切….所以这有效地减less了即使没有任何SSL成功的攻击的机会!
Kevin Skoglund最初的想法是,如果对保护您的APP没有兴趣,请参阅他的安全PHP教程。 https://www.lynda.com/PHP-tutorials/Creating-Secure-PHP-Websites/133321-2.html
PS还需要使用其他一些防御措施(CSRF至less)来保护AP
再见:-)