Heim Backend-Entwicklung PHP-Tutorial Code zum teilweisen Ein- und Ausschalten der CSRF-Überprüfung in yii2

Code zum teilweisen Ein- und Ausschalten der CSRF-Überprüfung in yii2

Feb 08, 2018 am 09:32 AM
csrf yii2 关闭

Dieser Artikel stellt Ihnen hauptsächlich den Beispielcode zum teilweisen Schließen (Öffnen) der CSRF-Überprüfung in yii2 vor. Der Herausgeber findet es ziemlich gut, deshalb möchte ich es jetzt mit Ihnen teilen und es als Referenz für alle zur Verfügung stellen. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

(1) Für die globale Verwendung setzen wir „enableCookieValidation“ direkt in der Konfigurationsdatei auf „true“


request => [ 
  'enableCookieValidation' => true, 
]
Nach dem Login kopieren

Wenn Sie dies nicht tun Ich muss es nicht verwenden. Setzen Sie für csrf 'enableCookieValidation' => false, aber das ist unsicher, daher ist enableCookieValidation in yiiwebrequest von yii2 standardmäßig auf true gesetzt, was bedeutet, dass csrf standardmäßig aktiviert ist, sodass wir diesen Wert auch nicht konfigurieren können und aktivieren Sie es standardmäßig.

Wenn Sie CSRF aktivieren, ist für jede Post-Anfrage eine Authentifizierung erforderlich, da es global ist. Wenn wir also Daten veröffentlichen, müssen wir die CSRF-Daten so einstellen, dass sie im Formular ausgeblendet werden.

Code kopieren Der Code lautet wie folgt:



Beim Posten von Daten müssen Sie diesen Wert posten. Die Generierung dieses Wertsrequest->csrfToken ?>, gibt ein verschlüsseltes csrfToken zurück.

Ob es sich also um ein Post-Formular oder einen Ajax-Beitrag handelt, muss der Wert von csrfToken festgelegt und beim Absenden gepostet werden. Andernfalls tritt ein Fehler auf und die Authentifizierung wird nicht bestanden.

(2) Was soll ich tun, wenn ich in einigen Controllern keine CSRF-Verifizierung verwenden möchte?

Die Methode ist sehr einfach und wird direkt festgelegt


public $enableCsrfValidation = false ,
Nach dem Login kopieren

Da dieser Controller von yiiwebController erbt, entspricht er Wenn Sie vom Attribut „enableCsrfValidation“ erben, wird beim Erstellen einer Controller-Instanz die CSRF-Funktion in diesem Controller deaktiviert und beim Zugriff auf den Beitrag dieses Controllers wird keine Überprüfung durchgeführt.

Zum Beispiel, wenn wir die API entwickeln, wenn die WeChat-Schnittstelle Daten auf unserer Schnittstelle posten muss, da die WeChat-Seite das csrfToken nicht kennt, wenn auf die Post-Daten zugegriffen wird, wenn diese aktiviert sind on Wenn es sich um ein globales CSRF handelt, ist der Zugriff definitiv nicht erfolgreich. Daher müssen Sie die CSRF dieser API deaktivieren.

3) Was ist, wenn Sie eine bestimmte Aktion gezielt schließen möchten?

Manchmal müssen wir in einigen Funktionen die CSRF-Überprüfung in einer bestimmten Aktion deaktivieren. Wir wissen, dass die Überprüfung von csrf in beforeAction($Action) implementiert ist. Als nächstes können wir die Methode beforeAction($action) im Controller


public function beforeAction($action) { 
 
  $currentaction = $action->id; 
 
  $novalidactions = ['dologin']; 
 
  if(in_array($currentaction,$novalidactions)) { 
 
    $action->controller->enableCsrfValidation = false; 
  } 
  parent::beforeAction($action); 
 
  return true; 
}
Nach dem Login kopieren

neu schreiben Die übergebene $action ist das vom Controller für diesen Zugriff instanziierte Objekt. Es enthält viele Informationen, die Sie ausdrucken und sehen können.

Führen Sie zuerst $action->id aus, um den Aktionsnamen des aktuellen Zugriffs zu erhalten. Und $novalidactions ist ein Array, das die Aktionsnamen enthält. Bei diesen Aktionen handelt es sich um alle Vorgänge, die Sie zum Deaktivieren der CSRF-Authentifizierung benötigen (Vorgänge, die zum Deaktivieren der CSRF-Authentifizierung erforderlich sind).

Ob sich die aktuell aufgerufene Aktion in diesen $novalidactions befindet. Wenn dies der Fall ist, bedeutet dies, dass diese Aktion die CSRF-Funktion deaktivieren muss. Stellen Sie daher die Controller-Instanz auf

< ein 🎜>


$action->controller->enableCsrfValidation = false
Nach dem Login kopieren
Führen Sie als Nächstes parent::beforeAction($action) aus. Zu diesem Zeitpunkt hat sich die enableCsrfValidation der Controller-Instanz in der eingehenden $action auf false geändert.


Muss am Ende true zurückgeben, sonst wird die Aktionsoperation nicht ausgeführt.

(4) Was passiert, wenn es teilweise eingeschaltet ist?

Stellen Sie zunächst



request => [
&#39;enableCookieValidation&#39; => false,
]
Nach dem Login kopieren
ein, um csrf nicht global in der Konfigurationsdatei zu verwenden.

(a) Um es im Controller einzuschalten, stellen Sie einfach



public $enableCsrfValidation = true
Nach dem Login kopieren
ein und der gesamte Controller wird eingeschaltet

(b) Zum Aktivieren von



public function beforeAction($action) {
$currentaction = $action->id;
$accessactions = [&#39;dologin&#39;];
i f(in_array($currentaction,$accessactions)) {
       $action->controller->enableCsrfValidation = true;
 }

    parent::beforeAction($action);
    return true;
}
Nach dem Login kopieren
$accessactions ist der Name der Aktion, die csrf und $action->controller aktivieren muss wird auf ->enableCsrfValidation = true gesetzt, der aktuelle Vorgang kann csrf aktivieren.


Verwandte Empfehlungen:


Detaillierte Erklärung des lokalen Schalters von yii2 csrf

Behebung des 400-Fehlers danach Aktivieren von CSRf

Yii2.0-Verteidigung gegen CSRF-Angriffe

Das obige ist der detaillierte Inhalt vonCode zum teilweisen Ein- und Ausschalten der CSRF-Überprüfung in yii2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie schalte ich die vom 360 Browser empfohlenen Anzeigen aus? Wie deaktiviere ich die vom 360-Browser empfohlenen Anzeigen auf dem PC? Wie schalte ich die vom 360 Browser empfohlenen Anzeigen aus? Wie deaktiviere ich die vom 360-Browser empfohlenen Anzeigen auf dem PC? Mar 14, 2024 am 09:16 AM

Wie schalte ich die vom 360 Browser empfohlenen Anzeigen aus? Ich glaube, dass viele Benutzer den 360-Browser verwenden, aber dieser Browser zeigt manchmal Werbung an, was viele Benutzer sehr verunsichert. Lassen Sie diese Website den Benutzern sorgfältig erklären, wie Sie die vom 360-Browser empfohlenen Anzeigen auf Ihrem Computer deaktivieren können. Wie schalte ich die vom 360-Browser empfohlenen Anzeigen auf Ihrem Computer aus? Methode 1: 1. Öffnen Sie den 360 Safe Browser. 2. Suchen Sie das Logo „drei horizontale Balken“ in der oberen rechten Ecke und klicken Sie auf [Einstellungen]. 3. Suchen Sie in der Taskleiste auf der linken Seite der Popup-Oberfläche nach [Lab] und aktivieren Sie die Funktion „360-Hotspot-Informationen aktivieren“. Methode 2: 1. Erster Doppelklick

Wie schalte ich Sina News Express aus? Wie schalte ich Sina News Express aus? Mar 12, 2024 pm 09:46 PM

Die Sina News-Software bietet viele Schlagzeileninformationen, die im Wesentlichen von der offiziellen Plattform bereitgestellt werden. Der Inhalt jedes Nachrichtenartikels ist authentisch. Sie können mit einem Klick nach oben und unten wischen, um die Leseatmosphäre zu verbessern . Geben Sie Ihre Mobiltelefonnummer ein, um sich online anzumelden. Die 24-Stunden-Updates werden nicht wiederholt. Wischen Sie nach oben und unten, um sie auszuwählen Wenn Sie interessiert sind, können Sie die Nachrichten-Express-Funktion auch deaktivieren. Sie können sie jederzeit öffnen und eine Vorschau der umfangreichen Schlagzeilen anzeigen Details zu Sina News-Benutzern online. Suchen Sie nach Sina News und klicken Sie auf die untere rechte Ecke

Ausführliche Erklärung zum Deaktivieren des Windows 11-Sicherheitscenters Ausführliche Erklärung zum Deaktivieren des Windows 11-Sicherheitscenters Mar 27, 2024 pm 03:27 PM

Im Betriebssystem Windows 11 ist das Sicherheitscenter eine wichtige Funktion, die Benutzern hilft, den Sicherheitsstatus des Systems zu überwachen, sich gegen Malware zu verteidigen und die Privatsphäre zu schützen. Manchmal müssen Benutzer das Sicherheitscenter jedoch möglicherweise vorübergehend deaktivieren, beispielsweise wenn sie bestimmte Software installieren oder eine Systemoptimierung durchführen. In diesem Artikel erfahren Sie im Detail, wie Sie das Windows 11-Sicherheitscenter deaktivieren, damit Sie das System korrekt und sicher bedienen können. 1. So schalten Sie das Sicherheitscenter von Windows 11 aus Unter Windows 11 funktioniert das Ausschalten des Sicherheitscenters nicht

So schließen Sie die passwortfreie Zahlung in Kuaishou. Kuaishou-Tutorial zum Schließen der passwortfreien Zahlung So schließen Sie die passwortfreie Zahlung in Kuaishou. Kuaishou-Tutorial zum Schließen der passwortfreien Zahlung Mar 23, 2024 pm 09:21 PM

Kuaishou ist ein ausgezeichneter Videoplayer, der uns im täglichen Leben sehr helfen kann, insbesondere beim Kauf der benötigten Waren auf der Plattform . Jetzt müssen wir es abbrechen. Wie können wir die passwortfreie Zahlung effektiv abbrechen? Werfen wir einen Blick auf den gesamten Leitfaden auf dieser Website. Ich hoffe, er kann allen helfen. Anleitung zum Schließen der passwortfreien Zahlung in Kuaishou 1. Öffnen Sie die Kuaishou-App und klicken Sie auf die drei horizontalen Linien in der oberen linken Ecke. 2. Klicken Sie auf Kuaishou Store. 3. Suchen Sie in der Optionsleiste oben nach „Passwortfreie Zahlung“ und klicken Sie darauf. 4. Klicken Sie, um zu unterstützen

Ausführliche Erklärung zum Deaktivieren des Echtzeitschutzes im Windows-Sicherheitscenter Ausführliche Erklärung zum Deaktivieren des Echtzeitschutzes im Windows-Sicherheitscenter Mar 27, 2024 pm 02:30 PM

Als eines der Betriebssysteme mit der größten Benutzerzahl weltweit wurde das Windows-Betriebssystem schon immer von den Benutzern bevorzugt. Bei der Verwendung von Windows-Systemen können Benutzer jedoch mit zahlreichen Sicherheitsrisiken konfrontiert werden, wie z. B. Virenangriffen, Malware und anderen Bedrohungen. Um die Systemsicherheit zu stärken, verfügen Windows-Systeme über zahlreiche integrierte Sicherheitsschutzmechanismen, darunter die Echtzeitschutzfunktion des Windows Security Center. Heute stellen wir Ihnen im Detail vor, wie Sie den Echtzeitschutz im Windows-Sicherheitscenter deaktivieren. Lassen Sie uns zunächst einmal

Wie kann ich den privaten Nachrichtenmodus aktivieren, wenn die andere Partei in der privaten TikTok-Nachricht den privaten Nachrichtenmodus deaktiviert hat? Kann ich sehen, ob die Person, der ich eine private Nachricht sende, den privaten Nachrichtenmodus deaktiviert hat? Wie kann ich den privaten Nachrichtenmodus aktivieren, wenn die andere Partei in der privaten TikTok-Nachricht den privaten Nachrichtenmodus deaktiviert hat? Kann ich sehen, ob die Person, der ich eine private Nachricht sende, den privaten Nachrichtenmodus deaktiviert hat? Mar 28, 2024 am 08:01 AM

Douyin ist eine beliebte soziale Kurzvideoplattform, die es Benutzern ermöglicht, einfach ihr Leben aufzuzeichnen und ihr Glück zu teilen. Die private Nachrichtenfunktion spielt in Douyin eine wichtige Rolle und ist eine der wichtigsten Möglichkeiten für Benutzer, miteinander zu interagieren. Manchmal kann es vorkommen, dass die andere Partei den privaten Nachrichtenmodus deaktiviert hat, was dazu führt, dass keine Nachrichten gesendet werden können. 1. Wie kann ich den privaten Nachrichtenmodus aktivieren, wenn die andere Partei in der privaten Douyin-Nachricht den privaten Nachrichtenmodus deaktiviert hat? 1. Bestätigen Sie, ob die andere Partei Datenschutzeinstellungen aktiviert hat. Zunächst sollten wir überprüfen, ob die andere Partei Datenschutzeinstellungen aktiviert hat, die möglicherweise den Empfang privater Nachrichten eingeschränkt haben. Wenn sie Einstellungen haben, die nur private Nachrichten von Bekannten zulassen, können wir versuchen, sie auf andere Weise zu kontaktieren, beispielsweise über gemeinsame Freunde oder Interaktionen auf Social-Media-Plattformen. 2. Senden Sie eine Freundschaftsanfrage, wenn die andere Partei die Datenschutzeinstellungen nicht aktiviert hat

So deaktivieren Sie das Sicherheitscenter in Windows 11 So deaktivieren Sie das Sicherheitscenter in Windows 11 Mar 28, 2024 am 10:21 AM

Windows 11 ist die neueste von Microsoft eingeführte Betriebssystemversion. Im Vergleich zu früheren Versionen verfügt Windows 11 über eine strengere Verwaltung und Überwachung der Systemsicherheit. Eine der wichtigen Funktionen ist das Sicherheitscenter. Security Center kann Benutzern dabei helfen, den Sicherheitsstatus des Systems zu verwalten und zu überwachen, um sicherzustellen, dass das System vor Malware und anderen Sicherheitsbedrohungen geschützt ist. Obwohl Security Center für den Schutz der Systemsicherheit wichtig ist, möchten Benutzer das Security Center manchmal aus persönlichen Gründen oder aus anderen Gründen deaktivieren. In diesem Artikel wird die Verwendung von W vorgestellt

Wo kann man Dolby Atmos in opporeno5 deaktivieren?_So deaktivieren Sie Dolby Atmos in opporeno5 Wo kann man Dolby Atmos in opporeno5 deaktivieren?_So deaktivieren Sie Dolby Atmos in opporeno5 Mar 25, 2024 pm 04:41 PM

1. Klicken Sie in den Telefoneinstellungen auf Ton und Vibration. 2. Klicken Sie auf Dolby Atmos. 3. Schalten Sie den Schalter hinter Dolby Atmos aus.

See all articles