Express 3.x 的 csrf 怎么搞?
发布于 2年前 作者 alexbian 1824 次浏览

RT。发现3.X里面删掉了这一方法,找了个中间件express-csrf还是基于2.X的。

请问哪位做过的呀,谢谢!

6 回复
 app.use(express.csrf());
 app.use(function(req,res,next){
      res.locals.token = req.session._csrf;
      next()
  });

谢谢,刚刚查到了!

查到了,原来用法不一样了。

var express = require('express');

app.configure(function(){
  ...
  app.use(express.csrf());
});

这个中间件需要session支持,因此它的代码应该放在session()之后.

防跨站攻击

        //cookie
        app.use(express.cookieParser());
        //session
        app.use(express.session({
            secret:config.session_secret,
            store: new mongoStore({
                url: config.mongodb,
                collection : 'sessions'
            })
        }));
        
        app.use(express.csrf());
        
        app.use(function(req, res, next){
            res.locals.req = req;
            res.locals.session = req.session;
            res.locals.csrf = req.session ? req.session._csrf : ''
            next();
        });

我的_csrf一直在变化着的呢?我看cnodejs网站和其他网站,都没变化,求解。。

回到顶部