【发布时间】:2023-03-11 15:23:01
【问题描述】:
我一直在阅读令牌身份验证以及 XSRF 和 XSS 攻击以获取身份验证信息的可能性。
我知道,为了防止 XSRF 攻击,一种流行的方法是从 cookie 中读取自定义身份验证令牌,然后在发出任何 AJAX 请求之前将其添加到自定义请求标头中。然后,服务器可以对请求标头而不是 cookie 运行验证。我相信 AngularJS 使用这种方法:https://docs.angularjs.org/api/ng/service/$http
我的困惑来自于防止 XSS 攻击。显然,最好确保没有用户输入能够注入 javascript,但可以说发现了一个缺陷,因为需要读取上面提到的 cookie 以便在请求标头中设置它的值,它是否容易受到 XSS攻击?由于 cookie 不能只设置为 HTTP,攻击者可以不读取 cookie 来获取身份验证令牌,然后伪造请求吗?如果有,如何预防?
感谢任何信息。
【问题讨论】:
-
我也想知道同样的事情,看到 Angular 的 XSRF 保护需要一个将
httpOnly标签设置为false的 cookie。显然,如果您的网站容易受到 XSS 攻击,即使有 XSRF 保护,您也无法阻止攻击者伪造恶意请求。见:optiv.com/blog/bypassing-csrf-tokens-via-xss
标签: angularjs security authentication token