EBADCSRFTOKEN:博览会认证会话中无效的CSRF令牌



我使用expo认证会话和Azure ADB2C来授权我的移动React Native应用程序。我使用expo认证会话代理。当我尝试登录到应用程序时,我得到一个错误,上面写着&;EBADCSRFTOKEN:无效的CSRF令牌&;在浏览器中,我第一次尝试登录。随后的尝试都很顺利。其他线程推荐了可能的解决方案,但据我所知,它们都不适用,因为我们正在使用Azure的ADB2C。

HTTP每次都在创建新的会话,这会导致问题

CSRF令牌有两部分。嵌入在表单中的令牌,以及在其他地方的对应令牌,可能是在cookie中,存储在会话中或其他地方。else的使用使页面不再是自包含的。

如果您在请求中包含要散列的字符串,则请求是自包含的,因此攻击者只需复制表单即可,因为他们拥有令牌的两个部分,因此没有保护。

即使把它放在表单URL中也意味着它是自包含的,攻击者只是复制表单和提交URL。

一半可以保存在会话中,或者可以通过cookie删除。它根本不需要存储在服务器上,通常它是基于cookie的,所以你不必依赖于启用会话。

关于无效CSRF令牌的几个建议解决方案:https://blogs.sap.com/2014/07/11/issues-with-csrf-token-and-how-to-solve-them/

最新更新