>PHP 프레임워크 >YII >yii2에서 반복적인 양식 제출을 방지하는 방법

yii2에서 반복적인 양식 제출을 방지하는 방법

(*-*)浩
(*-*)浩원래의
2019-12-30 10:22:062987검색

yii2에서 반복적인 양식 제출을 방지하는 방법

yii2는 csrf를 사용하여 반복적인 양식 제출을 방지합니다

#🎜 🎜 우선 yii2의 csrf 검증은 토큰 검증을 저장하기 위해 기본적으로 쿠키를 사용합니다. 양식의 반복 제출을 방지하려면 먼저 이 방법을 세션으로 변경해야 합니다. #🎜🎜 ##### 🎜🎜 ## 🎜🎜 ## 🎜🎜#달성하기 위해 프로젝트 구성 수정(권장 학습:yii 프레임워크
)

그런 다음, csrf 검증이 통과된 후, 다음 get 요청을 입력하기 전에 세션에 저장된 csrf 토큰이 새로 고쳐지거나 지워지지 않습니다. csrf를 검증하는 위치는 컨트롤러의 beforeAction 메소드에 있습니다. 소스 코드는 다음과 같습니다# 🎜🎜#
'components' => [
	'request' => [
		'enableCsrfCookie' => false
	]
]

물론 소스코드를 바꾸는 것은 좋지 않으니 새로운 컨트롤러를 만들어서 컨트롤러를 상속받고 beforeAction 메소드를 구현해 보세요

/**
* @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;
}

위 내용은 yii2에서 반복적인 양식 제출을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:yii2 구성 방법다음 기사:yii2 구성 방법