yii2에서 CSRF 확인을 부분적으로 켜고 끄는 코드
이 글에서는 주로 yii2 CSRF 검증 부분 종료(열기) 예제 코드를 소개합니다. 편집자님이 꽤 좋다고 하셔서 지금 공유하고 참고용으로 드리고 싶습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.
(1) 전역적으로 사용하려면 구성 파일에서 직접 활성화CookieValidation을 true로 설정합니다
request => [ 'enableCookieValidation' => true, ]
csrf를 사용할 필요가 없으면 'enableCookieValidation' => false로 설정하지만 안전하지 않으므로 안전하지 않습니다. yii2의 yiiwebrequest에 있는 활성화CookieValidation은 기본적으로 true로 설정되어 있습니다. 이는 csrf가 기본적으로 활성화되어 있음을 의미하므로 이 값을 구성하여 기본적으로 활성화할 수도 없습니다.
csrf를 활성화하면 글로벌이기 때문에 모든 게시물 요청에 인증이 필요하므로 데이터를 게시할 때 양식에서 csrf 데이터가 숨겨지도록 설정해야 합니다.
코드 복사 코드는 다음과 같습니다.
데이터를 게시할 때 이 값을 게시해야 합니다. 이 값의 생성은 = Yii::$app->request->csrfToken ?>이며, 반환됩니다. 암호화된 csrfToken.
그래서 게시물 양식이든 Ajax 게시물이든 csrfToken 값을 설정해야 하며 제출 시 게시해야 합니다. 그렇지 않으면 오류가 발생하고 인증이 통과되지 않습니다.
(2) 일부 컨트롤러에서 CSRF 검증을 사용하고 싶지 않으면 어떻게 해야 합니까?
메소드가 매우 간단합니다. 직접 설정합니다.
public $enableCsrfValidation = false ,
이 컨트롤러는 yiiwebController에서 상속하므로, 활성화CsrfValidation 속성에서 상속하는 것과 동일합니다. 그런 다음 컨트롤러 인스턴스를 생성할 때 csrf 기능이 꺼집니다. 이 컨트롤러의 post 메서드에 액세스하면 검증이 수행되지 않습니다.
예를 들어 API를 개발할 때 WeChat 인터페이스가 인터페이스에 데이터를 게시해야 할 때 WeChat은 csrfToken을 모르기 때문에 게시 데이터에 액세스할 때 글로벌 csrf가 켜져 있으면 확실히 불가능합니다. 성공적으로 액세스했습니다. 따라서 이 API의 csrf를 꺼야 합니다.
3) 특정 작업을 구체적으로 종료하고 싶다면 어떻게 해야 하나요?
때때로 일부 기능에서는 특정 작업에서 csrf 확인을 꺼야 할 때가 있습니다. 우리는 csrf 검증이 beforeAction($Action)에서 구현된다는 것을 알고 있습니다. 다음으로 Controller
public function beforeAction($action) { $currentaction = $action->id; $novalidactions = ['dologin']; if(in_array($currentaction,$novalidactions)) { $action->controller->enableCsrfValidation = false; } parent::beforeAction($action); return true; }
에서 beforeAction($action) 메소드를 다시 작성할 수 있습니다. 전달된 $action 매개변수는 이 액세스 인스턴스에 대한 컨트롤러입니다. 개체에는 많은 정보가 포함되어 있으므로 인쇄하여 살펴볼 수 있습니다.
먼저 $action->id를 실행하여 현재 액세스된 액션 이름을 가져옵니다. 그리고 $novalidactions는 작업 이름이 포함된 배열입니다. 이러한 작업은 모두 CSRF 인증을 해제하는 데 필요한 작업(CSRF 인증을 해제해야 하는 작업)입니다.
현재 액세스된 액션이 이 $novalidactions에 있는지 여부. 그렇다면 이 액션은 csrf 기능을 꺼야 한다는 의미이므로 컨트롤러 인스턴스를
$action->controller->enableCsrfValidation = false
로 설정한 다음 parent:를 실행하세요. beforeAction($action), 이때 수신 $action에서 컨트롤러 인스턴스의 활성화CsrfValidation이 false로 변경되었습니다.
마지막에 true를 반환해야 합니다. 그렇지 않으면 작업 작업이 실행되지 않습니다.
(4) 부분적으로 켜져 있으면 어떻게 되나요?
구성 파일에서 첫 번째 설정
request => [ 'enableCookieValidation' => false, ]
csrf를 전역적으로 사용하지 마세요.
(a) 컨트롤러에서 활성화하려면
public $enableCsrfValidation = true
만 설정하면 전체 컨트롤러가 활성화됩니다
(b) 액션에서 활성화하려면
public function beforeAction($action) { $currentaction = $action->id; $accessactions = ['dologin']; i f(in_array($currentaction,$accessactions)) { $action->controller->enableCsrfValidation = true; } parent::beforeAction($action); return true; }
$ accessactions를 활성화해야 합니다. csrf 작업의 이름은 $action->controller->enableCsrfValidation = true로 설정되며 현재 작업은 csrf를 활성화할 수 있습니다.
관련 권장사항:
위 내용은 yii2에서 CSRF 확인을 부분적으로 켜고 끄는 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











360 브라우저에서 권장하는 광고를 끄는 방법은 무엇입니까? 많은 사용자들이 360 브라우저를 사용하고 있다고 생각합니다. 그러나 이 브라우저는 때때로 광고가 표시되어 많은 사용자들을 매우 고민하게 만듭니다. 이 사이트에서는 컴퓨터에서 360 브라우저에서 권장하는 광고를 끄는 방법을 사용자에게 주의 깊게 소개하겠습니다. 컴퓨터에서 360 브라우저가 권장하는 광고를 끄는 방법은 무엇입니까? 방법 1: 1. 360 안전 브라우저를 엽니다. 2. 오른쪽 상단에 있는 "세 개의 가로 막대" 로고를 찾아 [설정]을 클릭하세요. 3. 팝업 인터페이스 왼쪽 작업 표시줄에서 [실험실]을 찾아 ["360 핫스팟 정보" 기능 활성화]를 선택합니다. 방법 2: 1. 먼저 두 번 클릭합니다.

Sina News 소프트웨어는 기본적으로 공식 플랫폼에서 제공하는 많은 뉴스 헤드라인 정보를 제공합니다. 각 뉴스 기사의 내용은 정통합니다. 한 번의 클릭으로 위아래로 스와이프하여 검색하고 탐색할 수 있어 전반적인 독서 분위기가 더욱 편안해집니다. . 온라인으로 로그인하려면 휴대폰 번호를 입력하세요. 다양한 분야의 뉴스 채널이 열려 있습니다. 24시간 업데이트가 반복되지 않습니다. 국내, 해외, 지역 시사 뉴스를 한 번의 클릭으로 선택하세요. 뉴스 내용은 모두 관심이 있으시면 뉴스 익스프레스 기능을 꺼두셔도 됩니다. 언제든지 열어서 방대한 인기 뉴스 헤드라인을 미리 보실 수 있습니다. Sina News 사용자에게 온라인으로 빠른 배송 기능의 작동 단계에 대한 세부 정보를 제공합니다. 시나뉴스를 찾아 오른쪽 하단을 클릭하세요.

Windows 11 운영 체제에서 보안 센터는 사용자가 시스템 보안 상태를 모니터링하고 악성 코드로부터 보호하며 개인 정보를 보호하는 데 도움을 주는 중요한 기능입니다. 그러나 때로는 사용자가 특정 소프트웨어를 설치하거나 시스템 튜닝을 수행하는 경우와 같이 Security Center를 일시적으로 꺼야 할 수도 있습니다. 이 글에서는 시스템을 올바르고 안전하게 운영하기 위해 Windows 11 보안 센터를 끄는 방법을 자세히 소개합니다. 1. Windows 11 보안 센터를 끄는 방법 Windows 11에서는 보안 센터를 꺼도 작동하지 않습니다.

Kuaishou는 뛰어난 비디오 플레이어입니다. Kuaishou의 비밀번호 없는 결제 기능은 일상생활에서, 특히 플랫폼에서 필요한 상품을 구매할 때 큰 도움이 될 수 있습니다. 이제 취소를 해야 하는데 어떻게 취소할 수 있나요? 비밀번호 없이 결제를 취소하는 방법은 매우 간단합니다. 이 사이트의 전체 가이드를 함께 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다. Kuaishou에서 비밀번호 없는 결제를 종료하는 방법에 대한 튜토리얼 1. Kuaishou 앱을 열고 왼쪽 상단에 있는 세 개의 수평선을 클릭합니다. 2. Kuaishou 스토어를 클릭하세요. 3. 위 옵션바에서 비밀번호 없는 결제를 찾아 클릭해주세요. 4. 지원하려면 클릭하세요.

세계에서 가장 많은 사용자를 보유한 운영 체제 중 하나인 Windows 운영 체제는 항상 사용자들의 선호를 받아왔습니다. 그러나 Windows 시스템을 사용할 때 사용자는 바이러스 공격, 맬웨어 및 기타 위협과 같은 많은 보안 위험에 직면할 수 있습니다. 시스템 보안을 강화하기 위해 Windows 시스템에는 다양한 보안 보호 메커니즘이 내장되어 있으며 그 중 하나가 Windows 보안 센터의 실시간 보호 기능입니다. 오늘은 Windows 보안 센터에서 실시간 보호를 끄는 방법을 자세히 소개하겠습니다. 먼저,

Douyin은 사용자가 간단하게 자신의 삶을 기록하고 행복을 공유할 수 있는 인기 있는 짧은 비디오 소셜 플랫폼입니다. 비공개 메시징 기능은 Douyin에서 중요한 역할을 하며 사용자가 서로 상호 작용하는 주요 방법 중 하나입니다. 때로는 상대방이 비공개 메시지 모드를 꺼서 메시지를 보낼 수 없는 상황이 발생할 수 있습니다. 1. TikTok 비공개 메시지의 상대방이 비공개 메시지 모드를 끈 경우 비공개 메시지 모드를 어떻게 켜나요? 1. 상대방이 개인 정보 설정을 활성화했는지 확인하려면 먼저 상대방이 개인 메시지 수신을 제한했을 수 있는 개인 정보 설정을 활성화했는지 확인해야 합니다. 지인의 비공개 메시지만 허용하도록 설정되어 있는 경우, 서로 친구를 사귀거나 소셜 미디어 플랫폼을 통해 교류하는 등 다른 수단을 통해 연락을 시도할 수 있습니다. 2. 상대방이 개인 정보 보호 설정을 활성화하지 않은 경우 친구 요청을 보냅니다.

1. 휴대폰 설정에서 소리 및 진동을 클릭하세요. 2. 돌비 애트모스를 클릭하세요. 3. Dolby Atmos 뒤에 있는 스위치를 끕니다.

Windows 11은 Microsoft가 출시한 최신 운영 체제 버전입니다. 이전 버전에 비해 Windows 11의 중요한 기능 중 하나는 보안 센터입니다. Security Center는 사용자가 시스템의 보안 상태를 관리하고 모니터링하여 시스템이 맬웨어 및 기타 보안 위협으로부터 보호되도록 도와줍니다. Security Center는 시스템 보안을 보호하는 데 중요하지만, 때때로 사용자는 개인적인 필요나 기타 이유로 Security Center를 끄고 싶을 수도 있습니다. 이번 글에서는 W 사용법을 소개하겠습니다.
