如何绕过/避免API帖子上的csrf?

时间:2014-04-14 16:25:13

标签: node.js express

在使用ExpressJS的节点应用程序中,我们启用了CRSF中间件。 这很好用,但是我们有一些以/ api开头并接受失败(禁止)的POST请求的路由,因为当然没有CRSF令牌。 我们如何绕过/避免CRSF for / api帖子?

2 个答案:

答案 0 :(得分:0)

您可以有条件地传递中间件内部,因此一个选项是查看这样的模式:

function yourMiddleware(req, res, next) {
  if ( null !== req.path.match(/^\/api/) ) {
    next();
  }
  //your CRSF behavior here
}

答案 1 :(得分:0)

如何在CSRF中间件之前注册这些路由?喜欢:

var express = require('express');
var app = express();

app.use(express.bodyParser());
app.use(express.cookieParser('your-secret'));
app.use(express.session());
app.use('/api', require('path to your module that does not need csrf'));
app.use(express.csrf());
app.use('/othermount', require('path to your module that needs csrf'));

编辑:扩展代码示例以阐明我的想法。