Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 7822|Antwort: 1

CSRF-Angriffe auf die SameSite-Eigenschaft des Cookies verhindern

[Link kopieren]
Veröffentlicht am 17.04.2022, 20:24:47 | | | |
SameSite-Eigenschaft

Ab Chrome 51 wurde ein neues SameSite-Attribut zu den Cookies des Browsers hinzugefügt, um CSRF-Angriffe und Nutzerverfolgung (böswillige Übernahme von Cookies durch Dritte) zu verhindern und Drittanbieter-Cookies zu begrenzen und so die Sicherheitsrisiken zu verringern.

SameSite definiert in RFC6265bis:Der Hyperlink-Login ist sichtbar.

Über CSRF Angriffszusammenfassung:

ASP.NET CSRF-Angriff Ajax-Kapselungsanforderung
https://www.itsvse.com/thread-8077-1-1.html

mvc ajax mit AntiForgeryToken zu verhindern, um CSRF-Angriffe zu verhindern
https://www.itsvse.com/thread-4207-1-1.html

QQ Quick Login Protokoll analysieren und "CSRF" implementieren
https://www.itsvse.com/thread-3571-1-1.html
Die SameSite-Eigenschaft kann auf drei Werte gesetzt werden:Strict、Lax、None

Streng: Verboten Sie strikt, dass Dritte Cookies erhalten, und senden Sie unter keinen Umständen Cookies bei Seitenübergreifenden Aktivitäten; Cookies werden nur dann enthalten, wenn die URL der aktuellen Seite mit dem Anfrageziel übereinstimmt. Diese Regel ist zu streng und kann zu einer sehr schlechten Benutzererfahrung führen. Wenn zum Beispiel ein GitHub-Link auf der aktuellen Webseite vorhanden ist, erhalten Nutzer beim Klicken auf den Sprung keine GitHub-Cookies, und der Sprung war immer nicht mehr eingeloggt.

Lax: Verhindern von Seitenübergreifenden Aktivitäten, in den meisten Fällen ist es verboten, Cookies zu erhalten, außer bei GET-Anfragen (Links, Preloads, GET-Formulare), die zur Ziel-URL führen; Sobald Streng oder Lax gesetzt ist, werden CSRF-Angriffe im Grunde eliminiert. Natürlich gilt: Vorausgesetzt, der Benutzerbrowser unterstützt die SameSite-Eigenschaft.

SameSite-AttributDefault SameSite=Lax[Diese Operation gilt für Versionen nach der Veröffentlichung der stabilen Chrome 80-Version von Chrome 80 am 4. Februar 2019]



Nichts: Es gibt keine Grenze.

Das Secure-Attribut muss ebenfalls gesetzt werden (Cookies können nur über das HTTPS-Protokoll gesendet werden), andernfalls ist es nicht gültig. [Diese Operation gilt für Versionen nach der Veröffentlichung der stabilen Chrome 80-Version von Chrome 80 am 4. Februar 2019]


Teste die SameSite-Eigenschaft

Wir laden dynamisch ein Bild von Standort A über die F12-Konsole an Standort A, der Code lautet wie folgt:

Wir können aus der Netzwerkanfrage erkennen, dass Standort A, wenn er ein Bild des Domainnamens von Standort A anfordert, dies tun wirdKekse tragen(SameSite hat keine Einstellungen, z. B. Lax), wie im untenstehenden Bild gezeigt:



Wir finden zufällig eine B-Stelle, laden dann dynamisch das Bild von A und finden sieNicht tragenJeder Keks, wie unten gezeigt:



(Ende)





Vorhergehend:jQuery hide funktioniert nicht zwei Lösungen
Nächster:Das Winkelelement wird nicht verborgen sichtbar und verborgen angezeigt und verborgen
Veröffentlicht am 17.04.2022, 21:20:07 |
Lerne zu lernen...
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com