sle*_*lls 6 csrf firebase electron firebase-authentication firebase-admin
我正在尝试在我的 Node 服务器中设置会话 cookie,这是一个 Electron 应用程序的后端。我正在尝试遵循本指南。
https://firebase.google.com/docs/auth/admin/manage-cookies
我感到困惑的第一件事是该函数在“登录”部分的来源:const csrfToken = getCookie('csrfToken') “getCookie”是我应该自己编写的函数吗?
我也没有完全遵循“创建会话 cookie”片段的逻辑:
const csrfToken = req.body.csrfToken.toString();
// Guard against CSRF attacks.
if (csrfToken !== req.cookies.csrfToken) {
res.status(401).send('UNAUTHORIZED REQUEST!');
return;
}
Run Code Online (Sandbox Code Playgroud)
所以这看起来像是在检查请求主体的 CSRF 令牌是否与请求 cookie 的 CSRF 令牌中设置的相同?这是因为有人可能会手动设置 CSRF 令牌(即使用 Postman),但这样的请求不会通过,因为它不在req.cookies?这是否意味着不应在其客户端代码中设置 req.cookies ?
getCookie基本上是一个 cookie getter。可以自己写,也可以网上查找实现。至于CSRF检查,这是针对CSRF攻击的基本防御。CSRF 令牌设置在 cookie 中,然后在帖子正文中返回。后端将确认 cookie 中的 CSRF 令牌与 POST 正文中的令牌匹配。基本上,这里的想法是,只有来自您网站的请求才能读取 cookie 并将其传递到 POST 正文的请求中。如果请求来自另一个网站,他们将无法读取 cookie 并将其传递到 POST 正文中。虽然 CSRF 令牌 cookie 始终会随请求传递,即使来自其他来源,但该令牌在 POST 正文中不可用。
快速入门 Node.js 实现位于:https ://github.com/firebase/quickstart-nodejs/tree/master/auth-sessions
| 归档时间: |
|
| 查看次数: |
1716 次 |
| 最近记录: |