Heim >php教程 >PHP开发 >Yii2.0-Verteidigung gegen CSRF-Angriffsmethode

Yii2.0-Verteidigung gegen CSRF-Angriffsmethode

黄舟
黄舟Original
2017-01-03 09:46:161592Durchsuche

In yii2 erhalten Sie immer den Fehler „http400: Bad Request“, unabhängig davon, ob Sie das Testtool POSTMAN, die Befehlszeilen-CURL-Anfrage oder die Ajax-Anfrage verwenden Einschränkung von verbFilter), das ist normal.

Nachdem ich die Informationen konsultiert habe, habe ich herausgefunden, dass dies der Grund für die CRSF-Überprüfung ist.

Prinzip:

Cookie-Hashing, das den Server zulässt um einen zufälligen Wert_csrf in allen an den Client gesendeten Formularen zu markieren und gleichzeitig ein zugehöriges Token im COOKIE des Clients zu speichern;

Während der Überprüfung _POST() gibt der Server bei jedem Empfang eine versteckte Eingabe _csrf aus Eine Anfrage und das COOKIE des Clients werden verglichen und überprüft

Das Prinzip des Angriffs des Angreifers besteht darin, das COOKIE des Clients zu verwenden, aber der Angreifer kann nicht an den spezifischen Inhalt des COOKIE gelangen, das er einfach verwendet (abgesehen davon). Hier besteht die Möglichkeit von XSS-Angriffen, da Benutzer-Cookies aufgrund von XSS-Schwachstellen in der Website leicht gestohlen werden können. Im Allgemeinen geben Angreifer grundsätzlich auf, wenn sie die Notwendigkeit erkennen, Hash-Werte zu berechnen Fügen Sie der Angriffs-URL Token hinzu, sodass die Überprüfung fehlschlägt.

Dies ist möglicherweise die einfachste Lösung, da der Angreifer (theoretisch) keine Cookies von Drittanbietern erhalten kann und daher die Daten im Formular nicht erstellt werden können

Lösung:

1.禁用CRSF验证(不推荐):'enableCsrfValidation' => false,

'components' => [
'request' => [
'cookieValidationKey' => '83r5HbITBiMfmiYPOZFdL-raVp4O1VV4',
'enableCookieValidation' => false,
'enableCsrfValidation' => false,
]

2. Tragen Sie beim Senden von Daten CSRF-Informationen bei den Header (wie unten gezeigt) und senden Sie ihn zusammen mit den einzureichenden Daten



c Sie können die CSRF-Informationen auch über PHP

Yii2.0-Verteidigung gegen CSRF-Angriffsmethode

Das Obige ist der Inhalt der Yii2.0-Abwehr gegen CSRF-Angriffe. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Yii::$app->request->csrfParam;(获取csrf-param)
Yii::$app->request->csrfToken;(获取csrf-token)
Stellungnahme:
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