【问题标题】:EBADCSRFTOKEN: Invalid CSRF token in expo auth sessionEBADCSRFTOKEN:博览会身份验证会话中的 CSRF 令牌无效
【发布时间】:2021-09-02 12:23:52
【问题描述】:

我正在使用 expo auth session 和 Azure ADB2C 来授权我的移动 React Native 应用程序。我正在使用 Expo auth session 代理。当我尝试登录该应用程序时,我在第一次尝试登录时在浏览器中收到一条错误消息,显示为“EBADCSRFTOKEN:无效的 CSRF 令牌”。随后的尝试工作正常。其他线程已经推荐了可能的解决方案,但据我所知,它们都不适用,因为我们使用的是 Azure 的 ADB2C。

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: expo azure-ad-b2c


【解决方案1】:

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

CSRF 令牌有两个部分。嵌入在表单中的令牌,以及其他地方的相应令牌,无论是在 cookie 中、存储在会话中还是在其他地方。这种在别处的使用会阻止页面自包含。

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

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

一半可以保留在会话中,也可以通过 cookie 丢弃。它根本不必存储在服务器上,通常它是基于 cookie 的,因此您不必依赖启用会话。

针对无效 CSRF 令牌的一些推荐解决方案:https://blogs.sap.com/2014/07/11/issues-with-csrf-token-and-how-to-solve-them/

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 2014-02-16
    • 2020-09-29
    • 2015-10-09
    • 1970-01-01
    • 2021-08-19
    • 2018-01-08
    • 2017-03-21
    相关资源
    最近更新 更多