带有 Express 和 csurf 的 ReactJS 中的 CSRF

6 csrf express reactjs

我正在寻找一种在 ReactJS 中实现 CSRF 的“好”方法。到目前为止,我只看到了用于 SSR 应用程序以及它们设置输入类型的示例,如下所示:

  <input type="hidden" name="_csrf" value="">
Run Code Online (Sandbox Code Playgroud)

这对于 React 也是可能的,但是,我不喜欢您必须在代码库中复制它的事实。

在 Express 文档中,他们谈到在 SPA 中使用它,但是,在这里他们使用res.render(当您的前端使用 ReactJS 时不使用)方法,如下所示:

app.all('*', function (req, res) {
  res.cookie('XSRF-TOKEN', req.csrfToken())
  res.render('index')
})
Run Code Online (Sandbox Code Playgroud)

这是如何在 React 中实现的?