CNode

如何修改 express/node_modules/connect/lib/middleware/csrf.js

Zzzswang发布于14 年前最后回复14 年前6 回复7011 浏览0 收藏

第一次接触这些东西,不太懂。

请问,这句话应该加在什么地方?

express/node_modules/connect/lib/middleware/csrf.js 添加: if (req.body && req.body.user_action === 'upload_image') return next();

查看回复

回复 (6)

S
sumory#1·14 年前

加在这里

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));

    if (req.body && req.body.user_action === 'upload_image') return next();

    // 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();
  }
};
J
jsonshen#2·14 年前
引用 sumory加在这里 module.exports = function csrf(options) { var options = options || {} , value = options.val...

直接改crsf.js的源代码不是很友好,可以用下面的方式来实现相同的效果

var csrf = express.csrf();
app.use(function(req, res, next){
  // ignore uplaod image (for now)
  if (req.body && req.body.user_action === 'upload_image')
    return next();
  csrf(req, res, next);
});
Z
zzswang#4·14 年前

多谢

Z
zero7u#6·14 年前

不加会怎么样?git上最新的下载的没这些东西吗?

参与回复
登录后即可参与回复。登录