Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man das SameSite-Attribut für PHP-Cookies?

Wie implementiert man das SameSite-Attribut für PHP-Cookies?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 20:26:29276Durchsuche

How to Implement the SameSite Attribute for PHP Cookies?

Gleiches Site-Attribut für PHP-Cookies

RFC 6265 führt das „Same Site“-Attribut für Cookies ein, das die Cookie-Sicherheit erhöht, indem es Cross-Site Request Forgery (CSRF) einschränkt. Angriffe.

PHP-Unterstützung:

Für PHP >= v7.3:

Die Funktion setcookie() unterstützt das „Same Site“-Attribut über das $options-Array. Die gültigen Werte sind:

  • Keine
  • Lax
  • Streng

Für PHP < v7.3:

Aufgrund von PHP-Kerneinschränkungen sind mehrere Problemumgehungen verfügbar:

Apache-Konfiguration:

Fügen Sie die folgende Zeile hinzu Ändern Sie alle Cookies mit dem Attribut „Same Site“:

Header always edit Set-Cookie (.*) "; SameSite=Lax"

Nginx-Konfiguration:

Aktualisieren Sie die Konfiguration so, dass sie Folgendes enthält:

proxy_cookie_path / "; secure; HttpOnly; SameSite=strict";

Header-Methode:

Sie können Cookies explizit mithilfe von Headern setzen:

header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");

Ausnutzen eines Fehlers:

Verwenden eines veraltete setcookie()-Methode, die einen Fehler ausnutzt:

setcookie('cookie-name', '1', 0, '/; samesite=strict');

Hinweis: Dieser Fehler wurde in PHP 7.3 behoben.

Referenzen:

  • [Chrome-Status: Funktionsdokumentation](https://www.chromestatus.com/feature/5633521622188032)
  • [HTTPbis-Entwurf](https://tools.ietf.org/ html/draft-west-first-party-cookies)
  • [HTTPbis neuester Entwurf](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis)
  • [PHP-Handbuch: setcookie()](https://php.net/manual/en/function.setcookie.php)

Das obige ist der detaillierte Inhalt vonWie implementiert man das SameSite-Attribut für PHP-Cookies?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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