Introdução ao CSURF
É uma biblioteca para criar e validar CSRF Token em formulários.
Configuração
- Importar o pacote
csurf
com NPM:
$ npm i csurf
- Importar
csurf
no arquivo de entrada da aplicação:
const csrf = require("csurf");
- 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);
)
- 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();
};
- Adicionar os middlewares criado na etapa anterior no contexto do Express:
app.use(csrf());
app.use(checkCsrfError);
app.use(csrfMiddleware);
app.use(routes);
- 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>