我使用cakephp 2.x激活了安全组件,问题是我禁用了csrf验证我的json请求,如下所示:
{
"isBase64Encoded": true|false,
"statusCode": httpStatusCode,
"headers": { "headerName": "headerValue", ... },
"body": "..."
}
是否可以从beforefilter中删除unlockedActions代码并在json请求中集成csrf验证以及其他非json操作。
提前致谢。
答案 0 :(得分:1)
您很可能必须禁用POST数据验证,除非您的请求包含使用表单助手构建的表单中的数据:
$this->Security->validatePost = false;
然后您必须在请求POST数据中包含CSRF令牌。生成的令牌可以在请求参数中找到_Token.key
:
$this->request->param('_Token.key')
// or
$this->request->params['_Token']['key']
并且需要以_Token.key
提交,即
{
"_Token": {
"key": "keyValue"
}
}
另见