gpt4 book ai didi

node.js - 使用 Firebase 电子邮件/密码身份验证的 CSRF 保护

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:08 26 4
gpt4 key购买 nike

我正在努力将我的 Node.js 应用程序部署到生产环境中。我们遇到了一些 CSRF 问题,但在更深入地研究问题并了解更多关于 CSRF 攻击之后,我想知道我们是否需要执行这些检查。

我们的 API 在我们的 CSRF 检查中被列入白名单,因此我们依赖 API 的移动应用程序可以正常运行(我们目前正在努力保护它)。在网络前端,我们允许用户注册/登录并创建/编辑他们的数据。我们使用 Firebase 的电子邮件/密码身份验证系统来执行身份验证 ( https://firebase.google.com/docs/auth/web/password-auth )。据我了解,这意味着我们不必担心注册和登录时的 CSRF 攻击,因为 Firebase 会处理这个问题。我的问题是:如果我们确保我们的用户在我们应用程序的每个 Post 路由上都通过 Firebase 进行身份验证,这是否意味着我们不必担心 CSRF 攻击?

最佳答案

当您保存 session cookie 时,CSRF 会成为一个问题。 Firebase Auth 目前将 Auth State 保存在 Web 存储(localStorage/indexedDB)中,并且不会随请求一起传输。您应该运行客户端代码以获取 Firebase ID token ,并通过 header 或 POST 正文等将其传递给请求。在您的后端,您将在提供受限内容或处理经过身份验证的请求之前验证 ID token 。这就是为什么在当前形式下,CSRF 不是问题,因为需要 Javascript 从本地存储获取 ID token ,并且本地存储是单一主机来源,因此无法从不同来源访问它。

如果您计划在 Firebase 身份验证后将 ID token 保存在 cookie 中或设置您自己的 session cookie,那么您应该考虑防范 CSRF 攻击。

关于node.js - 使用 Firebase 电子邮件/密码身份验证的 CSRF 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48505572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com