如何在Yii2框架中处理CSRF验证


How to handle CSRF Validation in Yii2 Framework?

我在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)?>