본문 바로가기

웹프로그래밍/PHP

iframe으로 php 페이지 지정시 세션 유지(공유) 안되는 현상

반응형

브라우저 보안정책 강화로 인해 iframe 으로 php 외 다른 url 등을 불러왔을 때, set cookie의 기본 samesite 정책이 Lax 로 지정되어 iframe 내의 페이지가 set cookie 를 기본적으로 하지 못하도록 차단됩니다. 그래서 iframe 으로 사이트를 불러왔을때 로그인이 풀리는 현상이 있는데요.

 

php 에서 로그인 처리시, 혹은 session_start() 시에 아래 코드를 추가하면 해결이 가능합니다.

session_start();
setcookie("PHPSESSID", session_id(), time() + 3600, "/; samesite=None; Secure");

 

session_start() 다음에 생성된 session_id 를 PHPSESSID setcookie를 다시 해주는건데요. samesite 를 None 옵션을 주면 iframe 내에서 불러졌더라도 쿠키에 셋업되어 다른 페이지 이동시에 세션이 유지되게 됩니다.

반응형