如何在 Yii2 框架中处理 CSRF 验证?
我在 yii2 中遇到 CSRF 验证问题。验证适用于 gii 生成的默认表单,但当我使用 html 标记编辑表单时,表单提交会引发错误的请求错误。我已经禁用了csrf验证来隐藏错误,但我想用它来确保应用程序和数据验证的安全性。
是否有任何方法可以解决此错误,或者有没有办法将其配置为在这种情况下正常工作?
我在 yii2 中遇到 CSRF 验证问题。验证适用于 gii 生成的默认表单,但当我使用 html 标记编辑表单时,表单提交会引发错误的请求错误。我已经禁用了csrf验证来隐藏错误,但我想用它来确保应用程序和数据验证的安全性。
是否有任何方法可以解决此错误,或者有没有办法将其配置为在这种情况下正常工作?
我猜,你的html表单没有隐藏字段,这是由标准的Yii2小部件自动生成的。_csrf
因此,自定义表单的最小代码可能如下所示:
<form method="post">
<input type="hidden" name="<?= Yii::$app->request->csrfParam; ?>" value="<?= Yii::$app->request->csrfToken; ?>" />
<button type="submit"> Save </button>
</form>
试试这个
<?=yii\helpers\Html::hiddenInput(Yii::$app->request->csrfParam, Yii::$app->request->csrfToken)?>