Heim > Artikel > Backend-Entwicklung > Wie kann ich das Attribut „SameSite' für Cookies in PHP-Versionen vor 7.3 festlegen?
So verwenden Sie PHP „SameSite=Strict“
Als Reaktion auf die jüngsten Änderungen in „RFC 6265“, mit dem „Same Site"-Attribut zur Steuerung des Cookie-Zugriffs, es besteht ein wachsendes Interesse an der Unterstützung dieses Attributs in PHP.
PHP >= v7.3
Für PHP-Versionen 7.3 und oben wurde die Möglichkeit, das Attribut „Same Site“ festzulegen, über das Array $options in die Funktion setcookie() integriert. Das folgende Beispiel zeigt, wie der Wert „Same Site“ auf „None“ gesetzt wird:
<code class="php">setcookie($name, $value, [ 'expires' => time() + 86400, 'path' => '/', 'domain' => 'domain.example', 'secure' => true, 'httponly' => true, 'samesite' => 'None', ]);</code>
PHP < v7.3
Für PHP-Versionen vor 7.3 können alternative Lösungen eingesetzt werden:
1. Apache-Konfiguration:
Indem Sie die folgende Zeile zu Ihrer Apache-Konfiguration hinzufügen, können Sie den Wert „Same Site“ für alle Cookies auf „Lax“ setzen:
Header always edit Set-Cookie (.*) "; SameSite=Lax"
2. Nginx-Konfiguration:
Ein ähnlicher Ansatz ist für Nginx verfügbar, wo Sie die folgende Konfiguration verwenden können, um „Same Site“ für alle Cookies auf „Streng“ zu setzen:
location / { # your usual config ... # hack, set all cookies to secure, httponly and samesite (strict or lax) proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; }
3. Header-Methode:
Da Cookies im Wesentlichen Header in HTTP-Anfragen sind, können Sie sie mit der header()-Methode festlegen:
<code class="php">header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");</code>
4. setcookie() Bug Exploit:
Es gibt einen bekannten Fehler in der setcookie()-Methode, der es ermöglicht, den Wert „Same Site“ in PHP-Versionen vor 7.3 auf „Strict“ zu setzen:
<code class="php">setcookie('cookie-name', '1', 0, '/; samesite=strict');</code>
Hinweis: Dieser Fehler wurde in PHP 7.3 behoben.
Das obige ist der detaillierte Inhalt vonWie kann ich das Attribut „SameSite' für Cookies in PHP-Versionen vor 7.3 festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!