2014-10-08 97 views
2

我一直在阅读令牌认证以及XSRF和XSS攻击获取认证信息的可能性。令牌认证和XSRF/XSS保护

我知道,为了防止XSRF攻击,从cookie中读取自定义身份验证令牌并在发出任何AJAX请求之前将其添加到自定义请求头中是一种流行的方法。然后,服务器可以在请求标头上而不是在cookie上运行验证。我相信AngularJS使用这种方法:https://docs.angularjs.org/api/ng/service/ $ http

我的困惑来防止XSS攻击。显然,最好确保没有用户输入能够注入JavaScript,但可以说找到了一个缺陷,因为上面提到的cookie需要被读取,以便在请求头中设置它的值,是不是容易受到XSS攻击?由于cookie不能仅设置为HTTP,攻击者是否可以不读取cookie来获取身份验证令牌,然后伪造请求?如果是这样,这怎么能被阻止?

任何信息表示赞赏。

+0

我想知道同样的事情,看到Angular的XSRF保护需要一个cookie,'httpOnly'标签设置为'false'。显然,如果您的站点容易受到XSS攻击,那么即使使用XSRF保护,也无法阻止攻击者伪造恶意请求。请参阅:https://www.optiv.com/blog/bypassing-csrf-tokens-via-xss – Seeven 2017-08-21 09:53:45

回答

1

如果您的网站容易受到XSS攻击,则cookie只会受到XSS攻击。

因此,您必须确保任何用户输入在显示在页面上之前都已过滤。