Heim Web-Frontend HTML-Tutorial Was ist CSRF? Die Gefahren von CSRF und wie man sich dagegen verteidigt

Was ist CSRF? Die Gefahren von CSRF und wie man sich dagegen verteidigt

Sep 19, 2018 pm 03:25 PM
csrf

Der Inhalt dieses Artikels befasst sich mit der Frage: Was ist CSRF? Die Gefahren von CSRF und Verteidigungsmethoden haben einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.

Was ist CSRF?

Bevor wir CSRF verstehen, müssen wir zwei Voraussetzungen bekannt machen. Zunächst einmal gibt es viele Möglichkeiten, Anmeldeberechtigungen zu überprüfen. Derzeit verwenden die meisten Websites Sitzungssitzungsaufgabenmodus. Einfach ausgedrückt besteht der Sitzungsmechanismus darin, dass der Server ein Schlüssel-Wert-Paar verwendet, um Anmeldeinformationen aufzuzeichnen, und gleichzeitig die Sitzung im Cookie speichert. Die ID (der gerade erwähnte Schlüssel) wird im Cookie gespeichert. Darüber hinaus wissen wir auch, dass HTTP(s)-Anfragen im Browser automatisch Cookies für uns ändern. An den Server übergeben. Auf diese Weise wird bei jeder Anforderung die Sitzungs-ID über das Cookie abgerufen und anschließend die Anmeldeinformationen vom Server abgerufen, um die Überprüfung der Benutzerberechtigungen abzuschließen.

Das ist auch eine gute Funktion. Aber aufgrund Cookies sind wirklich offen, wenn sich ein Benutzer auf Website A anmeldet und beim Besuch von Website B ein A-Cookie sendet. Website-Anfrage, dann enthält diese Anfrage tatsächlich die Anmeldeinformationen des Benutzers auf Website A. Wenn A zu diesem Zeitpunkt an Station B ist Wenn die Website-Anfrage dem Benutzer unbekannt ist, stellt dies einen sehr schwerwiegenden Schaden dar. Der obige Prozess ist ein Cross-Site-Request-Angriff, also Cross-Site Request Forgery CSRF.

Gefahren von CSRF

Eine kurze Zusammenfassung der CSRF-Schwachstellen besteht darin, Schwachstellen bei der Website-Berechtigungsüberprüfung zu nutzen, um Anfragen ohne das Wissen des Benutzers zu senden, um den Zweck des Benutzers zu verschleiern . Die wichtigsten Arten von Angriffen, die von Angreifern mithilfe von CSRF durchgeführt werden, sind folgende:

Der Angreifer kann den Benutzer des Opfers dazu verleiten, alle vom Opfer zugelassenen Statusänderungsvorgänge auszuführen, z. B. Kontodaten aktualisieren, Einkäufe abschließen, Abmelden , und sogar Anmeldung und andere Vorgänge

private Daten der Benutzer abrufen

Mit anderen Schwachstellenangriffen zusammenarbeiten

CSRF-Wurm

unter anderem ihnen Der CSRF-Wurm erzeugt, wie der Name schon sagt, einen Wurmeffekt Der Angriff breitet sich von eins auf zehn und von zehn auf hundert aus. Beispielsweise weisen die Schnittstelle zum privaten Versenden von Nachrichten an Freunde in einer Community und die Schnittstelle zum Abrufen der Freundesliste beide CSRF-Schwachstellen auf. Ein Angreifer kann sie zu einem CSRF-Wurm kombinieren – wenn ein Benutzer eine bösartige Seite besucht, erhält er seine Freundeslisteninformationen CSRF nutzt dann die CSRF-Schwachstelle für private Nachrichten an Freunde und sendet an jeden Freund eine Nachricht, die auf eine schädliche Seite verweist. Solange jemand den Link in dieser Nachricht ansieht, breitet sich der CSRF-Wurm weiter aus, was zu Schäden und Auswirkungen führen kann Die Sache ist riesig!

Verteidigungsmethoden

Aus der obigen Beschreibung können wir erkennen, dass CSRF zwei Merkmale aufweist: die automatische Übertragungsfunktion von Cookies und standortübergreifende Angriffe. Dann können die folgenden Lösungen für diese beiden Funktionen verwendet werden.

Überprüfen Sie das Referrer-Feld

Jeder weiß, dass es im HTTP-Header ein Referer-Feld gibt. Dieses Feld wird verwendet, um die Adresse anzugeben, von der die Anfrage kommt. Indem wir dieses Feld der Anfrage auf der Website überprüfen, können wir feststellen, ob die Anfrage von dieser Website stammt. Wir können alle Anfragen ablehnen, die nicht von dieser Site gestellt werden, und so die Cross-Site-Merkmale von CSRF vermeiden.

1

2

3

4

5

6

7

8

const { parse } = require('url');module.exports = class extends think.Logic {

  indexAction() {

    const referrer = this.ctx.referrer();

    const {host: referrerHost} = parse(referrer);

    if(referrerHost !== 'xxx') {

        return this.fail('REFERRER_ERROR');

    }

  }}

Nach dem Login kopieren

Nehmen Sie auch ThinkJS als Beispiel und fällen Sie einfach ein einfaches Urteil in Logic. Diese Methode nutzt die Tatsache aus, dass der Client keinen Referrer erstellen kann. Sie ist zwar einfach, wird jedoch sehr problematisch, wenn die Website mehrere Domänennamen hat oder die Domänennamen häufig geändert werden, und weist auch bestimmte Einschränkungen auf.

Token-Überprüfung

Da CSRF die Fähigkeit des Browsers nutzt, Cookies automatisch weiterzugeben, besteht eine weitere Verteidigungsidee darin, die Überprüfungsinformationen nicht über Cookies weiterzuleiten und zufällige verschlüsselte Zeichenfolgen zu anderen Parametern zur Überprüfung hinzuzufügen . prüfen. Hier gibt es zwei Methoden:

Zufällige Zeichenfolge: Fügen Sie zu jeder Übermittlung einen Parameter hinzu, der vom Server über die Seite gesendet wird. Er wird dem Übermittlungsparameter hinzugefügt Pässe Überprüfen Sie, ob die Parameter konsistent sind, um festzustellen, ob es sich um eine Benutzeranforderung handelt. Da der Angreifer bei einem CSRF-Angriff keine Möglichkeit hat, den Wert der Zufallszeichenfolge im Voraus zu kennen, kann der Server die Anfrage ablehnen, indem er den Wert überprüft.

JWT: Eigentlich außer Neben der Sitzungsanmeldung erfreut sich die Überprüfung der JWT-Token-Anmeldung immer größerer Beliebtheit. Bei dieser Methode wird das Anmeldetoken im Frontend aufgezeichnet und bei jeder Anforderung im Header übergeben. Der Anmeldeüberprüfungsprozess wird durch Hinzufügen eines Authentifizierungsheaders implementiert. Da der Angreifer bei einem CSRF-Angriff den Token-Wert nicht kennen kann, können auf diese Weise auch CSRF-Angriffe verhindert werden. sicherlich Zu den Token-Anmeldemethoden gehören neben JWT auch OAuth und viele andere Methoden.

Das obige ist der detaillierte Inhalt vonWas ist CSRF? Die Gefahren von CSRF und wie man sich dagegen verteidigt. 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 Artikel -Tags

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)

Vergleichende Analyse der domänen- und standortübergreifenden Anfragefälschung von PHP-Sitzungen Vergleichende Analyse der domänen- und standortübergreifenden Anfragefälschung von PHP-Sitzungen Oct 12, 2023 pm 12:58 PM

Vergleichende Analyse der domänen- und standortübergreifenden Anfragefälschung von PHP-Sitzungen

PHP Framework-Sicherheitsleitfaden: Wie verhindert man CSRF-Angriffe? PHP Framework-Sicherheitsleitfaden: Wie verhindert man CSRF-Angriffe? Jun 01, 2024 am 10:36 AM

PHP Framework-Sicherheitsleitfaden: Wie verhindert man CSRF-Angriffe?

Schutz vor Cross-Site-Scripting (XSS) und Cross-Site-Request-Forgery (CSRF) in Laravel Schutz vor Cross-Site-Scripting (XSS) und Cross-Site-Request-Forgery (CSRF) in Laravel Aug 13, 2023 pm 04:43 PM

Schutz vor Cross-Site-Scripting (XSS) und Cross-Site-Request-Forgery (CSRF) in Laravel

CSRF-Angriff in PHP CSRF-Angriff in PHP May 25, 2023 pm 08:31 PM

CSRF-Angriff in PHP

Analyse der Cross-Site Request Forgery (CSRF)-Abwehrtechnologie in PHP Analyse der Cross-Site Request Forgery (CSRF)-Abwehrtechnologie in PHP Jun 29, 2023 am 09:20 AM

Analyse der Cross-Site Request Forgery (CSRF)-Abwehrtechnologie in PHP

Wie PHP sich gegen CSRF-Angriffe verteidigt Wie PHP sich gegen CSRF-Angriffe verteidigt Jun 30, 2023 pm 07:34 PM

Wie PHP sich gegen CSRF-Angriffe verteidigt

PHP und Vue.js entwickeln Anwendungen, die sich gegen Cross-Site-Request-Forgery-Angriffe (CSRF) schützen PHP und Vue.js entwickeln Anwendungen, die sich gegen Cross-Site-Request-Forgery-Angriffe (CSRF) schützen Jul 05, 2023 pm 07:21 PM

PHP und Vue.js entwickeln Anwendungen, die sich gegen Cross-Site-Request-Forgery-Angriffe (CSRF) schützen

PHP-Sicherheitsschutz: Verhindern Sie CSRF-Angriffe PHP-Sicherheitsschutz: Verhindern Sie CSRF-Angriffe Jun 24, 2023 am 11:10 AM

PHP-Sicherheitsschutz: Verhindern Sie CSRF-Angriffe

See all articles