보안서버 구축시에 필요시 프로토콜 전환 작업이 필요합니다. http <-> https
로그인은 다음과 같은 처리 순서를 가집니다.
- http 로그인 폼에서 사용자로부터 입력을 받습니다.
- https 전달된 정보(id/pw)를 체크합니다.
- http return url로 이동합니다.
사용자 입력이 올바르다면 3번 과정에서 로그인 된 페이지가 출력되야 하는데,
IE에서는 로그인으로 나오지만, chrome, firefox 등에서는 로그인이 되지 않은 페이지가 출력됩니다.
결론적으로,
- http 는 로그인 되지 않은 상태.
- https 는 로그인이 된 상태.
몇몇 브라우저에서 http <-> https 간에 세션 공유를 못하는 것이 원인.
다음과 같이 해결 하였습니다.
- http 로그인 폼에서 사용자로부터 입력을 받고, https 로 전송할 때 session_id 값을 같이 전달합니다.
- https 에서 전달받은 session_id으로 session_id를 재설정합니다.
//https page
<? session_id( $_GET['sess_key'] ); ?>
주의할 것은 session_id() 설정은 session_start() 보다 먼저 와야 합니다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.
,