보안서버 구축시에 필요시 프로토콜 전환 작업이 필요합니다. http <-> https
로그인은 다음과 같은 처리 순서를 가집니다.

 

  1. http 로그인 폼에서 사용자로부터 입력을 받습니다.
  2. https 전달된 정보(id/pw)를 체크합니다.
  3. http return url로 이동합니다.

 

사용자 입력이 올바르다면 3번 과정에서 로그인 된 페이지가 출력되야 하는데,
IE에서는 로그인으로 나오지만, chrome, firefox 등에서는 로그인이 되지 않은 페이지가 출력됩니다.

 

결론적으로,

 

  1. http 는 로그인 되지 않은 상태.
  2. https 는 로그인이 된 상태.

 

몇몇 브라우저에서 http <-> https 간에 세션 공유를 못하는 것이 원인.

 

다음과 같이 해결 하였습니다.

 

  1. http 로그인 폼에서 사용자로부터 입력을 받고, https 로 전송할 때 session_id 값을 같이 전달합니다.
  2. https 에서 전달받은 session_id으로 session_id를 재설정합니다.

 

//https page
<? session_id( $_GET['sess_key'] ); ?>

 

주의할 것은 session_id() 설정은 session_start() 보다 먼저 와야 합니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret