2010-06-28 42 views
2

阅读与会话劫持打交道,我已经收集了唯一的“解决方案”,以验证用户一个会话是通过检查用户代理,它是这样一个弱层我甚至不打算实施它的保护。通过#2这里关于会话劫持的许多问题在PHP

所以,我想知道你们已经实施了哪些解决方案?你甚至使用PHP的本地会话还是有更安全的解决方案?

+4

相反,EFF最近证明,用户代理实际上非常具体。在这里找到更多的信息:https://www.eff.org/deeplinks/2010/01/tracking-by-user-agent和这里http://panopticlick.eff.org/ – Palantir 2010-06-28 11:57:20

+0

@Palantir - 谢谢,我要去检出该文章 – 2010-06-28 12:09:39

+0

[PHP会话安全](http://stackoverflow.com/q/328/)的可能重复,[防止会话劫持的最佳方法是什么?](http://stackoverflow.com/ q/22880/90527) – outis 2012-04-19 09:19:56

回答

2

您不需要会话ID来劫持会话。 XSS攻击可以通过2种方式之一进行。最常见的是阅读document.cookie并将其发送到远程服务器(这个请求也将包含因此检查这个值受害者USER_AGENT是时间完全完全是浪费,因为它不会阻止任何攻击什么那么)。由微软开发的一种很酷的安全方法称为HTTPOnly Cookies,大多数浏览器都支持这种安全功能。

中HTTPOnly Cookie和检查客户端的IP地址不停止所有会话劫持。实际上,如果攻击者有XSS漏洞,他可以在受害者浏览器上使用XHR伪造请求,并且不需要知道cookie的价值。

在一天结束的时候,以阻止会话劫持,你需要插入漏洞在你的Web应用程序。最重要的是,您需要防止“会话骑马”,也称为CSRF。您还需要防止XSS漏洞,Acunetix free edition是找到它们的好工具。 。最后但肯定不是不重要的,你必须阅读OWASP A3: Broken Authentication and Session Management。 OWASP A3的普遍违反是人们不使用HTTPS来完成整个会话。在任何情况下,您都不能通过http泄漏cookie的价值,这与您泄漏用户名/密码的效果完全相同。如果黑客在嗅探流量,他将立即访问您的网站。

0

只需注销用户如果请求具有不同的IP和/或主机名称。至于拥有动态IP的人 - 好吧,再次登录并不是什么大问题。

显然对付它的“正确”的方式是实现SSL。

+1

更改IP时将用户记录下来会给AOL用户带来麻烦,AOL用户的网络网关频繁切换IP地址(如果他们仍然这样做,他们肯定会做2-3年)。 – 2010-06-28 11:59:24

+0

在这种情况下,如果主机名以任何方式与AOL相关并且忽略IP一段时间,您可以检查主机名。 – Robus 2010-06-28 12:03:20

+0

仅仅因为它们位于代理服务器场网络后面而将用户从会话中抛出,似乎并不是一个可靠的解决方案 – 2010-06-28 12:08:56