如何使用PHP "SameSite=Strict"
回應「RFC 6265」中概述的最新更改,該更改引入了「SameSite= Strict” Site”屬性用於控制cookie 訪問,人們對在PHP 中支援此屬性越來越感興趣。 PHP 版本7.3 和上面,設定「同一網站」屬性的功能已透過setcookie() 函數中的$options 數合併。 🎜>
PHPPHP
PHP PHP<code class="php">setcookie($name, $value, [ 'expires' => time() + 86400, 'path' => '/', 'domain' => 'domain.example', 'secure' => true, 'httponly' => true, 'samesite' => 'None', ]);</code>v7.3
對於🎜> v7.3
對於採用替代解決方案:1. Apache 設定:
透過將下列行新增至Apache 設定中,您可以將所有cookie 的「相同網站」值設定為“Lax”:Header always edit Set-Cookie (.*) "; SameSite=Lax"
2. Nginx 配置:
Nginx 也有類似的方法,您可以使用以下配置將所有cookie 的“同一站點”設定為「嚴格」:location / { # your usual config ... # hack, set all cookies to secure, httponly and samesite (strict or lax) proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; }
3.標頭方法:
由於cookie 本質上是HTTP 請求中的標頭,因此您可以使用header () 方法設定它們:<code class="php">header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");</code>
4. setcookie() 錯誤利用:
setcookie() 方法中存在一個已知錯誤,允許在7.3 之前的PHP 版本中將「相同站點」值設為「嚴格」:<code class="php">setcookie('cookie-name', '1', 0, '/; samesite=strict');</code>
注意:
此錯誤已在PHP 7.3 中修復。以上是如何在 7.3 之前的 PHP 版本中設定 cookie 的「SameSite」屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!