CSRF禁止在我的registry上,不知道为什么
我已经在我的Express v3
应用程序上设置了CSRF,我有这样的:
app.use(express.session({ secret: "gdagadgagd", cookie: { httpOnly: true, path : '/', maxAge: 1000*60*60*24*30*12 } })); app.use(express.csrf()); app.use(function(req, res, next) { res.locals.token = req.session._csrf; next(); })
在我的页面上令牌显示为:
<input type="hidden" name="_csrf" value="E3afFADF3913-fadFK31">
但是当我尝试在我的网页上注册时,我得到这个错误:
Error: Forbidden at Object.exports.error (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/utils.js:55:13) at Object.handle (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/csrf.js:54:41) at next (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/proto.js:190:15) at next (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/session.js:313:9) at /Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/session.js:337:9 at /Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:50:9 at process._tickCallback (node.js:415:13)
我使用Jade作为我的模板引擎,这就是我所拥有的:
input(type='hidden', name='_csrf', value=token)
我直接访问本地主机:3000的网页,我不知道为什么我被禁止注册一个帐户。 谢谢!
您应该使用bodyParser中间件,让服务器知道_csrf
已通过。
插入app.use(express.bodyParser());
在app.use(express.csrf());
。
- 如何启用节点上的csrfexpression式为graphql和graphiql与例如lusca?
- 为什么Express / Connect为每个请求生成新的CSRF令牌?
- TypeError:无法在Object.handle中读取未定义属性'csrfSecret' – 使用Node.js
- 用于快速/连接的Ajax兼容中间件
- 如何正确configurationBrowsersync代理后端
- 在CSRF保护下构buildnode.js服务器,移动应用程序如何接收CSRF令牌?
- forbiddenError / 403 Ajax Express Csurf – 如何正确使用Csurf?
- 如何使用express.js在Ajax调用中实现CSRF保护(查找完整示例)?
- Braintree与csrf webhooks不工作