8
votes

Comment générer des jetons CSRF dans Express?

newbie. J'utilise expressjs / noeud. Voici mes trucs de configuration:

module.exports = function csrf(options) {
var options = options || {}
, value = options.value || defaultValue;

return function(req, res, next){
// generate CSRF token
var token = req.session._csrf || (req.session._csrf = utils.uid(24));

// ignore GET (for now)
if ('GET' == req.method) return next();

// determine value
var val = value(req);

// check
if (val != token) return utils.forbidden(res);

next();
}
}; 


0 commentaires

4 Réponses :


5
votes

Ajoutez le jeton aux aides dynamiques.

input(type='hidden', value=token)


0 commentaires

18
votes

Les aides dynamiques ont été supprimés de Express depuis 3.x.

La nouvelle utilisation serait app.use (express.csrf ()); , qui vient de Connectez .


0 commentaires

1
votes

dans express 4.x fort> Ce middleware est supprimé. Pour Express 4.x, vous pouvez le faire comme suit

input(type="hidden", name="_csrf", value="#{csrf}")


0 commentaires

0
votes

Si vous souhaitez également définir un cookie sécurisé pour votre jeton CSRF pouvant être lu par votre frontal (angulaire par exemple), vous pouvez le faire:

app.use csrf()

app.use (req, res, next) ->
  res.cookie('XSRF-TOKEN', req.csrfToken(), {secure: true})
next()


0 commentaires