我们的angularjs应用程序有一个基于令牌的OAuth身份验证机制。 acunetix工具表明存在XSRF威胁。
CSRF是基于令牌的身份验证的问题(因为我们没有使用任何cookie进行用户识别/身份验证/会话)?
如果CSRF是基于令牌的身份验证的问题,是否有办法在不使用Cookie的情况下实施预防?
答案 0 :(得分:3)
据我所知,基于令牌的身份验证绝不会受到CSRF的影响。例如。如果你使用cookies,坏人会引诱用户进入他们的网站,在那里他们可以创建一个特殊的按钮来为你的网站发帖 - >这是CSRF,您可以代表用户执行一些请求。
现在,如果您使用存储在会话/本地存储中的令牌,例如,它们永远不会随请求自动传递。您可能会使用角度拦截器或类似技术之类的东西将其与每个XHR请求一起传递。这永远不会自动发生。
您可以在this非常好的帖子中阅读有关令牌身份验证的更多信息。在第6点,有一些关于XSRF / CSRF,XSS的部分。
在我的谦虚体验中,这些大型安全工具通常可以告诉您一些不正确的事情,只是为了让自己更“重要”。但是,确切地知道它计划如何执行CSRF以及它认为可能的确切原因将会很有趣?例如。你可能有错过的饼干吗?
P.S。 使用令牌可以实现XSS攻击(窃取令牌),因为您可以像使用cookie那样只使用HTTP。因此,任何成功的XSS都能够读取你的令牌,所以你需要确保你有一个很好的保护。但它通常被框架很好地覆盖。