【发布时间】:2021-05-07 02:14:38
【问题描述】:
我有以下简单的代码来启用 csrf 保护
import csrf from 'csurf';
const csrfProtection = csrf({
cookie: {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
},
});
app.use(csrfProtection);
这意味着所有应用路由都在使用中间件,并且
router.get('/auth/csrf', (req, res) => {
res.json({ csrfToken: req.csrfToken() });
});
在向该服务器发出请求之前必须先调用。
现在,我有另一个后端微服务正在对一个端点进行 API 调用,我不想在后端服务调用端点时启用 csrf 检查。但是如果它来自其他地方,想要保留检查。
哪种方法适合我的情况?
【问题讨论】:
-
CSRF 用于保护机器人免受攻击。如果你为特定的机器人(也就是你的后端服务)设置了后门,那么你也会削弱对其他机器人的保护。
-
IP 白名单是一种可行的方法。网站将 Googlebot 的 IP 地址(和其他知名机器人)列入白名单是很常见的,这样它们就可以被抓取,但仍会阻止其他机器人流量,例如
标签: javascript node.js express csrf