Introdução ao CSURF
É uma biblioteca para criar e validar CSRF Token em formulários.
Configuração
- Importar o pacote
csurfcom NPM:
$ npm i csurf- Importar
csurfno 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>