common.lib.php 안에 있는 set_session 함수 채택완료

5년 전 조회 2,938

Copy
// 세션변수 생성

function set_session($session_name, $value)

{

    global $g5;

 

    static $check_cookie = null;

    

    if( $check_cookie === null ){

        $cookie_session_name = session_name();

        if( ! isset($g5['session_cookie_samesite']) && ! ($cookie_session_name && isset($_COOKIE[$cookie_session_name]) && $_COOKIE[$cookie_session_name]) && ! headers_sent() ){

            @session_regenerate_id(false);

        }

 

        $check_cookie = 1;

    }

 

    if (PHP_VERSION < '5.3.0')

        session_register($session_name);

    // PHP 버전별 차이를 없애기 위한 방법

    $$session_name = $_SESSION[$session_name] = $value;

}

저는 $check_cookie가 뭘 하는지부터 모르겠어서 이 함수를 이해하는 것이 너무 어렵습니다.

다른 내용들도 $cookie_session_name 과 같은 것들이 어떤 역할을 하는지 설명좀 해주세요 ㅠㅠ

답변 1개

채택된 답변
+20 포인트

해당 코드는 크롬브라우저의 쿠키 samesite none 이슈를 해결하기 위해 코드입니다.

 

https 환경에서 PHPSESSID 쿠키에 samesite none 이 안되어 있는 상태에서 타 도메인에서 이동시 세션이 풀릴경우,

 

session_regenerate_id 함수를 이용해서 현재 세션정보를 유지하면서, PHPSESSID 쿠키에 samesite none 처리를 하기 위해서 해 놓은것입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

와.. 너무 어렵네요..
답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고