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

时间:2015-02-12 09:06:03

标签: php csrf yii2

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

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

2 个答案:

答案 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)?>