旗下导航:搜·么
当前位置:网站首页 > PHP框架 > YII > 正文

yii2怎样防备反复提交表单【yii框架教程】,yii2

作者:搜搜PHP网发布时间:2019-12-30分类:YII浏览:90


导读:yii2应用csrf防备表单反复提交起首,默许情况下,yii2的csrf考证是经由过程cookie来保留token考证的,要完成防备表单反复提交,得先把这个体式格局改成...

yii2应用csrf防备表单反复提交

起首,默许情况下,yii2的csrf考证是经由过程cookie来保留token考证的,要完成防备表单反复提交,得先把这个体式格局改成session。

修正项目设置即可完成 (引荐进修:yii框架)

'components' => [
	'request' => [
		'enableCsrfCookie' => false
	]
]

然后,csrf考证经由过程后,在进入下一次get要求之前是不会革新或许消灭session里保留的谁人csrf token的,而考证csrf的处所在控制器的beforeAction要领里,源码 yii\web\Controller 以下

/**
* @inheritdoc
*/
public function beforeAction($action)
{
	if (parent::beforeAction($action)) {
		if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !Yii::$app->getRequest()->validateCsrfToken()) {
			throw new BadRequestHttpException(Yii::t('yii', 'Unable to verify your data submission.'));
		}
		return true;
	}
 
	return false;
}

改源码固然不好,所以建个新控制器继续该控制器完成beforeAction要领

public function beforeAction($action)
{
	if (parent::beforeAction($action)) {
		if ($this->enableCsrfValidation) {
			Yii::$app->getRequest()->getCsrfToken(true);
		}
		return true;
	}
 
	return false;
}

以上就是yii2怎样防备反复提交表单的细致内容,更多请关注ki4网别的相干文章!

标签:yii2