如何在Yii2 Framework中处理CSRF验证?

msu*_*cil 17 php csrf yii2

我在yii2中遇到CSRF验证问题.验证可以正常使用gii生成的默认表单,但是当我使用html标签编辑表单时,表单提交会引发错误的请求错误.我已禁用csrf验证以隐藏错误,但我想将此用于应用程序和数据验证的安全性.

有没有办法解决这个错误,还是有办法配置它在这种情况下正常工作?

Pav*_*iev 35

我想,你的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>
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个

<?=yii\helpers\Html::hiddenInput(Yii::$app->request->csrfParam, Yii::$app->request->csrfToken)?>
Run Code Online (Sandbox Code Playgroud)