PHP에서 사용자 세션 관리는 동적 웹 응용 프로그램을 구축하는 핵심 사항 중 하나입니다. 기본적으로 PHP 세션은 쿠키를 사용하여 클라이언트와 서버간에 세션 ID를 통과합니다. 보안, 제어 세션 동작을 개선하거나 브라우저 호환성 요구 사항을 준수하기 위해 Session_SET_COOKIE_PARAMS () 기능을 사용하여 세션 쿠키의 매개 변수를 사용자 정의 할 수 있습니다. 이 기사는이 기능의 사용 방법과 모범 사례를 자세히 소개합니다.
Session_SET_COOKIE_PARAMS ()는 Session_Start ()를 호출하기 전에 세션 쿠키의 관련 매개 변수를 설정하는 데 사용됩니다. 이 매개 변수에는 다음이 포함됩니다.
수명 : 쿠키의 유효 시간은 초입니다. 0으로 설정하면 브라우저가 닫힐 때 브라우저가 비활성화되어 있음을 의미합니다.
경로 : 쿠키가있는 유효한 경로, 기본값은 / 입니다.
도메인 : 쿠키가있는 유효한 도메인 이름.
보안 : 부울, 쿠키가 HTTPS에서만 전송되는지 여부를 나타냅니다.
httponly : 부울.
PHP 7.3.0에서 시작하여, 상기 매개 변수는 연관 배열을 전달하여 설정할 수 있으며, 이는보다 유연하고 읽을 수 있습니다.
다음은 기존 방식을 사용하여 쿠키 매개 변수를 설정하는 예입니다.
session_set_cookie_params (3600, "/", "m66.net", true, true); session_start (); 코드> 위의 코드에서 쿠키는 1 시간 후에 만료되도록 설정되며 M66.net 도메인 이름 및 해당 하위 경로에서만 유효하며 HTTPS를 통한 액세스가 필요하며 JavaScript (Enhanced Security)를 통해 액세스 할 수 없습니다.
3. 권장 현대 작문 방법 (PHP 7.3 이상)
명확한 코드 구조의 경우 배열을 사용하여 쿠키 매개 변수를 설정하는 것이 좋습니다.
session_set_cookie_params ([ 'lifetime'=> 3600, 'path'=> '/', 'domain'=> 'm66.net', 'secure'=> true, 'httponly'=> true, 'smames'=> 'strict']); session_start (); 코드> 참고 : Samesite 매개 변수는 CSRF 공격을 방지하는 것입니다. 'lax' , 'strict' 또는 'none' 으로 설정할 수 있습니다. 'None'을 사용하는 경우 Secure는 사실 이어야합니다.
4. 실제 시나리오에서의 응용 제안
활성화 HTTPS : 항상 HTTPS를 사용하고 안보 로 설정하는 것이 좋습니다.
httponly Protection XSS : httponly를 켜면 JavaScript가 쿠키에 액세스하는 것을 방지하고 크로스 사이트 스크립팅 공격의 위험을 줄일 수 있습니다.
합리적인 유효성 설정 기간 : 지나치게 긴 쿠키 수명주기를 설정하는 것이 좋습니다. 일반적으로 몇 시간 내에이를 제어하는 것이 더 합리적입니다.
도메인 및 경로 설정 : 도메인 과 경로가 합리적으로 설정되어 있는지 확인하고 관련없는 하위 도메인 또는 경로로 누출되는 쿠키를 피하십시오.
5. 일반적인 오류 및 디버깅 제안
잘못된 순서 : Session_START ()을 호출하기 전에 Session_SET_COOKIE_PARAMS ()를 호출해야합니다. 그렇지 않으면 설정이 유효하지 않습니다.
HTTPS가 활성화되지 않음 : Secure => True를 사용하면 HTTPS를 통해 액세스해야합니다. 그렇지 않으면 브라우저가 쿠키를 보내지 않습니다.
브라우저 호환성 문제 : 이전 브라우저의 Samesite 설정은 지원되지 않을 수 있습니다. 대상 사용자 그룹을 기반으로 사용할지 여부를 결정하는 것이 좋습니다.
6. 요약
관련 태그:
cookie