Introdução ao CSURF


É uma biblioteca para criar e validar CSRF Token em formulários.

Configuração

  1. Importar o pacote csurf com NPM:
$ npm i csurf
  1. Importar csurf no arquivo de entrada da aplicação:
const csrf = require("csurf");
  1. Adicionar o csurf no contexto do Express:
app.use(csrf());
 
app.use(routes);

Importante

Declarar app.use(csrf()); antes de definir as rotas (app.use(routes);)

  1. Criar middlewares para tratar o Token CSRF:
exports.checkCsrfError = (err, req, res, next) => {
 if (err && "EBADCSRFTOKEN" === err.code) {
   return res.render("404");
 }
};
 
exports.csrfMiddleware = (req, res, next) => {
 res.locals.csrfToken = req.csrfToken();
 next();
};
  1. Adicionar os middlewares criado na etapa anterior no contexto do Express:
app.use(csrf());
app.use(checkCsrfError);
app.use(csrfMiddleware);
 
app.use(routes);
  1. Para qualquer formulário da aplicação é necessário adicionar uma tag oculta nele:
<input type="hidden" name="_csrf" value="<%= csrfToken %>" />
<form action="/" method="post">
 <label>Cliente</label>
 <input type="text" name="cliente" />
 <button>Submit</button>
</form>

Referências