Php 为什么我们在采取行动之前在Yii2中禁用enableCsrfValidation?
我昨天升级了Php 为什么我们在采取行动之前在Yii2中禁用enableCsrfValidation?,php,security,model-view-controller,yii2,csrf,Php,Security,Model View Controller,Yii2,Csrf,我昨天升级了Yii2到最新版本,升级后我的大多数web控制器/操作都给了我 400错误请求无法验证您提交的数据 谷歌搜索之后,解决方案是使用Yii::$app->controller->enableCsrfValidation=false在每个操作之前的操作中都会出现此错误 我需要了解我为什么这样做,安全吗?还有别的解决办法吗?我觉得这不是克服这个错误的最好方法 这是目前已知的错误(请参阅和其他)。 Csrf cookie生成正确,但验证不正确,因此失败。表示一种攻击方法,用于强制客户端执行对服
Yii2
到最新版本,升级后我的大多数web控制器/操作都给了我
400错误请求无法验证您提交的数据
谷歌搜索之后,解决方案是使用Yii::$app->controller->enableCsrfValidation=false代码>在每个操作之前的操作中都会出现此错误
我需要了解我为什么这样做,安全吗?还有别的解决办法吗?我觉得这不是克服这个错误的最好方法 这是目前已知的错误(请参阅和其他)。
Csrf cookie生成正确,但验证不正确,因此失败。表示一种攻击方法,用于强制客户端执行对服务器的请求。对每个请求使用唯一生成的令牌会使攻击者无法进行此类攻击,因为攻击者不知道也猜不到该令牌
因此,删除此选项是一个轻微的安全风险,尽管不是很大的风险(这取决于您的应用程序以及您可以对单个请求执行的操作)。
您可能需要等待下一次更新,因为他们已经在修复该问题
在当前版本中,这是解决问题的唯一途径,除非您希望自己深入研究代码并在他们之前解决它(我不建议这样做)
希望有帮助