Express 3.x 的 csrf 怎么搞?
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网站和其他网站,都没变化,求解。。