7.3 이전 PHP 버전에서 쿠키에 대한 \'SameSite\' 속성을 어떻게 설정할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-10-25 02:41:02
원래의
452명이 탐색했습니다.

How can I set the

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!