将csurf与react-server一起使用

fey*_*chu 6 javascript csrf node.js reactjs react-server

我想在响应服务器内添加csurf作为通用应用程序的快速中间件.

我想要实现的是将csrf标记添加到react组件中的表单中的隐藏输入,以维护服务器呈现的网站提供的相同csrf保护流,但是在SPA中.

这在技术上是否可以在react-server中使用?如果是这样,我如何通过页面(理想情况下)将响应对象中可用的csrf标记传递给react组件?

小智 2

我实际上遇到了同样的问题,幸运的是在这里遇到了解决方案:https ://github.com/kriasoft/react-starter-kit/issues/1142

使用它只需执行以下操作:

app.use(csrf({ cookie: true, value: (req) => (req.cookies.csrfToken) }));
Run Code Online (Sandbox Code Playgroud)

然后为每个 get 请求设置一个带有 csrf 令牌的 cookie:

res.cookie('csrfToken', req.csrfToken ? req.csrfToken() : null, { sameSite: true, httpOnly: true }); 
Run Code Online (Sandbox Code Playgroud)