我对krakenjs有问题,我是一个节点/快递新手。
krakenjs设置为默认的csrf保护(我知道如何禁用,但我不想),但我不知道如何处理csrf和避免403错误。
在ejs文件中,我得到了这一行。
<input type="hidden" name="_crsf" value="<%= _csrf %>" />它产生适当的csrf,在那里没有问题。
这是我的路线
server.post('/isengard/fact/new', function(req,res){
var new_fact = Fact({
title : req.body.fact_title,
description : req.body.fact_description,
source : req.body.fact_source
});
new_fact.save(function(err){
if(err) return handleError(err);
var model = {status:true};
res.render('isengard/create',model);
});
});但是当我发送表单(POST)时,我得到了这个错误。
403 Error: Forbidden
at Object.exports.error (/Users/onur/Documents/node/sage/node_modules/express/node_modules/connect/lib/utils.js:63:13)
at createToken (/Users/onur/Documents/node/sage/node_modules/express/node_modules/connect/lib/middleware/csrf.js:82:55)
at /Users/onur/Documents/node/sage/node_modules/express/node_modules/connect/lib/middleware/csrf.js:48:24
at csrf (/Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:112:13)
at /Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:60:21
at xframe (/Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:131:9)
at /Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:60:21
at p3p (/Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:144:9)
at /Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:60:21
at Object.appsec (/Users/onur/Documents/node/sage/node_modules/kraken-js/node_modules/lusca/index.js:65:9)有人能解释我怎么处理csrf吗?
发布于 2013-12-19 02:07:59
实际上,你的问题是:
<input type="hidden" name="_crsf" value="<%= _csrf %>" />而不是:
<input type="hidden" name="_csrf" value="<%= _csrf %>" />注意name属性中的错误。
发布于 2013-11-21 22:50:04
诀窍是,您需要将POST测试封装在GET中,并从cookie中解析必要的CSRF令牌。
发布于 2015-08-04 05:50:58
除非您需要csrf保护,否则将其放在您的config.json中以完全禁用它。然后你的应用程序就会像其他程序一样运行。
"middleware": {
"appsec": {
"priority": 110,
"module": {
"name": "lusca",
"arguments": [
{
"csrf": false,
"xframe": "SAMEORIGIN",
"p3p": false,
"csp": false
}
]
}
},
}https://stackoverflow.com/questions/20130901
复制相似问题