我在yii2中的CSRF验证有问题。验证与gii生成的默认表单配合良好,但当我用html标记编辑表单时,表单提交会抛出一个错误的请求错误。我已经禁用了csrf验证来隐藏错误,但为了应用程序和数据验证的安全性,我想使用它。
有没有办法解决这个错误,或者有没有办法将其配置为在这种情况下正确工作?
我想,您的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>
试试这个
<?=yii'helpers'Html::hiddenInput(Yii::$app->request->csrfParam, Yii::$app->request->csrfToken)?>