设置 httponly 是否可以防止使用 XSS 窃取会话?

信息安全 Web应用程序 xss 饼干
2021-08-28 18:25:57

如果会话令牌存储在设置了 httponly 的 cookie 中,是否存在 XSS 漏洞可能允许恶意用户窃取用户会话令牌的方法?

4个回答

一般来说,如果httponly在其令牌上设置了 ,那么 XSS 攻击应该无法检索会话令牌。取模过去浏览器和插件中的错误,以及服务器配置错误(例如响应 HTTP TRACE)。

但它不值多少钱。您可以阻止 XSS 获取令牌,但 XSS 攻击仍然可以完全控制用户机器上的会话:它可以强制用户在站点上执行几乎所有操作,或者伪造用户到站点的界面(例如,通过网络钓鱼获取站点凭据)。请参阅BeEF以了解攻击者可以通过受损会话实现的目标:您已经几乎失去了目标。

httponly最好不设置会使攻击者的生活稍微容易一些,因为他们可以在自己的时间从自己的机器上访问会话,而不是受限于用户保持浏览器窗口打开的时间。httponly在可能的情况下值得拥有,但它是一种温和的缓解措施,并不能神奇地保护您免受 XSS 的影响。

如果操作正确,HttpOnly 可以防止攻击者窃取 cookie。但是,他们仍然可以冒充受害者用户执行任意 Web 请求,并提取响应。例如,BEEF 有一个模块可以做到这一点。

换句话说,HttpOnly 使攻击者的事情变得更加困难,但并不能阻止熟练的攻击者。

此外,正如其他人所指出的那样,存在各种漏洞可以让攻击者提取 HttpOnly cookie。

底线 - 所有 XSS 都可能很严重,您需要修复 XSS 缺陷。

在某些浏览器和 Web 服务器的某些版本中,可以绕过 HttpOnly 功能。
更多数据(natexim)
更多数据(google)

XSS 攻击非常灵活,例如,如果使用 HttpOnly 功能对 JS 和 ETC 隐藏 cookie,它们仍然可以执行。
其他可能的场景包括绕过 CSRF 令牌、利用浏览器弱点、欺骗内部网页等。

是的。大多。标头可防止“Cookie 窃取”,这是脚本劫持会话的一种简单方法。

它还取决于您的浏览器是否支持 HTTPonly 标头。如果不是,那么它将被忽略,并且它创建的功能永远不会发生。

这是一个更多解释标题的链接。它还包含一个表格,显示哪些浏览器支持它: https ://www.owasp.org/index.php/HttpOnly