CakePHP 3.5中CsrfProtectionMiddleware是否自动执行验证?
关于CakePHP 3.5中CSRF自动验证的确认
不用纠结啦,当你正确配置了CsrfProtectionMiddleware之后,CakePHP 3.5会自动验证收到的符合条件的请求,完全不需要你手动编写检查逻辑~
具体来说,这个中间件会自动拦截POST、PUT、DELETE这类非GET的请求(默认规则),检查请求里的CSRF令牌:
- 对于常规表单提交,它会校验表单里的
_csrfToken字段值,和当前会话中存储的令牌是否匹配 - 对于AJAX请求,它会检查请求头里的
X-CSRF-Token值是否有效
如果令牌不匹配或者缺失,框架会直接抛出403 Forbidden错误,阻止请求继续处理。
另外补充两个实用细节:
- 只要你用CakePHP的表单助手生成表单,
_csrfToken字段会自动被插入,不需要手动添加 - 如果你需要调整验证的请求范围,或者排除某些特定路由,可以在配置中间件的时候通过参数自定义,比如修改
$_validMethods或者添加skipCheckCallback
内容的提问来源于stack exchange,提问作者Merlin
相关产品推荐
相关产品推荐

