Node.js KrakenJS:通过控制器执行POST请求以错误结束

Node.js KrakenJS:通过控制器执行POST请求以错误结束,node.js,rest,csrf,Node.js,Rest,Csrf,我正在使用它来构建一个web应用程序。作为MVC,我正在通过控制器实现REST服务,下面是一个示例代码: //users can get data app.get('myRoute', function (req, res) { readData(); }); //users can send data app.post('myRoute', function (req, res) { writeData(); }); 我可以毫无问题地读取数据。但当我尝试使用POST请求插入

我正在使用它来构建一个web应用程序。作为MVC,我正在通过控制器实现REST服务,下面是一个示例代码:

//users can get data
app.get('myRoute', function (req, res) {
    readData();
});

//users can send data
app.post('myRoute', function (req, res) {
    writeData();
});
我可以毫无问题地读取数据。但当我尝试使用POST请求插入虚拟数据时,最终会出现以下错误:

错误:禁止 127.0.0.1---[Thu,2014年2月6日00:11:30 GMT]“POST/myRoute HTTP/1.1”500 374”-“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,类似Gecko)Ubuntu Chromium/32.0.1700.102 Chrome/32.0.1700.102 Safari/537.36”


如何克服此问题?

一件事是确保您发送了正确的CSRF头()。如果我没记错的话,默认情况下Kraken希望指定这些头


你也可以禁用CSRF,看看这是否能解决你的问题。既然KRAKEN使用了CSRF的LUSCA模块,您可以从这里获得如何禁用/配置的信息:

正如丹所说的,您可以关闭CSRF,但是您也可以考虑使用它,因为它带来了额外的安全性。


查看购物车示例了解更多信息:

我在前面使用了一个技巧,您不必关闭csrf

在您的“index.dust”->


如果您不需要csrf,我正在使用angularjs btw

通过将其放置在config.json的中间件中并将值设置为false,您将禁用csrf middlware的使用,并且您的应用程序将按预期运行

"middleware": {



  "appsec": {
    "priority": 110,
    "module": {
        "name": "lusca",
        "arguments": [
            {
                "csrf": false,
                "xframe": "SAMEORIGIN",
                "p3p": false,
                "csp": false
            }
        ]
    }
},

那是真的,我觉得很愚蠢。。。配置文件实际上有一个属性“csrf”:没错,它和更改它一样简单。我盯着这个看了两个小时,这就是你在晚上编写代码时发生的事情;)
    var csrf = document.getElementById('csrfid').value;

    $http({  method: 'POST',
        url: 'http://localhost:8000/myRoute/',
        data: { '_csrf': csrf, 'object': myObject }
      }).success(function(result) {
        //success handler
      }).error(function(result) {
        //error handler
      });
"middleware": {



  "appsec": {
    "priority": 110,
    "module": {
        "name": "lusca",
        "arguments": [
            {
                "csrf": false,
                "xframe": "SAMEORIGIN",
                "p3p": false,
                "csp": false
            }
        ]
    }
},