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