PHP "SameSite=Strict" 사용 방법
"RFC 6265"에 설명된 최근 변경 사항에 대응하여 "SameSite=Strict"를 도입했습니다. 쿠키 액세스를 제어하기 위한 Site" 속성을 사용하기 때문에 PHP 내에서 이 속성을 지원하려는 관심이 높아지고 있습니다.
PHP >= v7.3
PHP 버전 7.3 및 위에서는 "동일 사이트" 속성을 설정하는 기능이 setcookie() 함수의 $options 배열을 통해 통합되었습니다. 다음 예에서는 "동일 사이트" 값을 "없음"으로 설정하는 방법을 보여줍니다.
<code class="php">setcookie($name, $value, [ 'expires' => time() + 86400, 'path' => '/', 'domain' => 'domain.example', 'secure' => true, 'httponly' => true, 'samesite' => 'None', ]);</code>
PHP < v7.3
PHP 7.3 이전 버전의 경우 대체 솔루션을 사용할 수 있습니다:
1. Apache 구성:
Apache 구성에 다음 줄을 추가하면 모든 쿠키에 대해 "동일 사이트" 값을 "Lax"로 설정할 수 있습니다.
Header always edit Set-Cookie (.*) "; SameSite=Lax"
2. Nginx 구성:
Nginx에도 유사한 접근 방식을 사용할 수 있습니다. 여기서 다음 구성을 사용하여 모든 쿠키에 대해 "동일 사이트"를 "엄격"으로 설정할 수 있습니다.
location / { # your usual config ... # hack, set all cookies to secure, httponly and samesite (strict or lax) proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; }
3. 헤더 방법:
쿠키는 본질적으로 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 버전에서 쿠키에 대한 \'SameSite\' 속성을 어떻게 설정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!