본문으로 바로가기

https://xeno.work/samesite.html

 

 

chrome 80 SameSite cookie CORS 보안 변경사항 php 대응

SameSite 옵션이 없는 php 7.3 미만에서 이용할 대체함수입니다.

xeno.work

 

증상

타 도메인에서 iframe, FORM POST 등을 통해 넘어올 때 secure; SameSite=None 으로 세팅되지 않은 쿠키값을 브라우저가 서버로 전달하지 않습니다.

PG 결제시 어떤건 되고 어떤건 안되고 그렇습니다. 예를들어서 나이스페이 일반결제는 세션이 살아있는데 나이스페이 구독카드빌링등록후 돌아오면 세션이 끊겨있습니다.

php 7.3 이상에서는 아래 3줄 설정으로 같은 효과를 낼 수 있습니다.

ini_set('session.cookie_secure', true);
ini_set('session.cookie_httponly',false);
ini_set('session.cookie_samesite', 'None');

 

ini_set('session.cache_expire',86400);
ini_set('session.gc_maxlifetime',86400);
ini_set('session.use_trans_sid', 0);
ini_set('url_rewriter.tags','');
ini_set("session.gc_probability", 1);
ini_set("session.gc_divisor", 100);
ini_set('session.cookie_secure', true);
ini_set('session.cookie_httponly',false);
ini_set('session.cookie_samesite', 'None');

session_save_path($_SERVER['DOCUMENT_ROOT'].'/sessions');
session_cache_limiter('nocache, must_revalidate');
session_set_cookie_params(0, "/");
session_start();

사이트에 설정된 전체 코드 참고하세요