묻고답하기
서브도메인과 세션 공유 하기
2015.10.06 04:05
새로운 트러블이 생겼습니다..
서브도메인(http://like.this.com) 과 메인도메인(https://this.com) <<클라우드플레어CDN 세션을 공유하는 문제인데요.
php.ini 에서 세션도메인에 .this.com 값추가했고.
xe 설정에서 인증세션사용 활성화 했습니다.
그래도 역시 프로토콜이 바뀌어서 그런지?.. 로그인이 풀립니다.. 메인도메인에서 서브도메인으로 이동시
완전히 둘다 로그인이 풀려버려요..(이거 떄문에 약간 무언가 보안옵션 때문인가 싶기도하고..)
근데 메인도메인 https 에서 --> 메인도메인 http 로 갈땐. 로그인이 전혀 풀리지않습니다.
무언가 _XE_ 같은거라던지.. 그런걸로 해결가능할것 같은데.. ㅠㅠ 아시는분 계신가요..
추가:
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=402038&sca=&sfl=wr_subject&stx=https&sop=and
위 링크를 참조하게되면.. 서브도메인이 없는 즉, https://this.com 과 http://like.this.com 은 세션공유가 불가능하다는것 같은데.. 무언가 방법이없을지..
댓글 6
-
기진곰
2015.10.06 09:16
-
열혈개발
2015.10.06 14:39
저는 최신버전의 크롬브라우저 즉, 요즘 브라우저를 쓰고있습니다만
어째서인지 클플도메인 https://main.com 에서 서브도메인 http://sub.main.com 으로 넘어가면 로그인이 풀려버립니다.
main.com <<으로 conf 를 주었는데도 풀려버립니다. 혹시 이것도 클라우드플레어 문제가 아닐런지요?
-
기진곰
2015.10.06 15:45
클라우드플레어 문제일 수도 있고요...
혹시 메인에서만 https를 사용한다면 세션쿠키의 secure 속성 때문일 수도 있습니다. secure 속성을 가진 쿠키는 https가 아닌 페이지에서는 작동하지 않거든요. 만약 php.ini에서 session.cookie_secure 설정이 켜져 있다면 꺼주세요.
-
열혈개발
2015.10.06 15:26
if (!$_COOKIE['sessionid'] && $_SERVER['HTTP_HOST'] = 'sub.main.com') { //특정 서브도메인인경우
header('Location: https://main.com?sessid='.urlencode($_COOKIE['sessionid'])); //세션을 받아와서
setCookie($_GET['sessionid']); //셋쿠키를 해주고
header('Location: http://sub.main.com/'); //다시 서브도메인으로
}이것좀 검토해주세요 ㅠ
main.com <<으로 conf 를 주는건 안먹혀서요 ㅠ
-
기진곰
2015.10.06 15:45
setCookie($_GET['sessionid']); // BAD
setCookie('sessionid', $_GET['sessionid']); // GOOD
-
열혈개발
2015.10.06 16:58
문제 확인, 클라우드플레어 https 프로토콜에서의 세션과
클라우드플레어와 프록시되지 않는 http 의 세션이 공유되지 않네요.
https://abc.com(클플on) -> http://sub.abc.com(클플on) = 가능
https://abc.com(클플on) -> http://sub.abc.com(proxy off) = 불가능
세션공유 문제는 클플 상에서 프록시되고 있는아이와 그렇지 않은 아이 간에서 세션공유가 안되는거였네요.
어케해야할지 막막하네요 ㅋㅋ
http/https 프로토콜은 세션 공유와 무관합니다.
XE의 인증세션 DB 사용 옵션은 도메인과 무관합니다.
링크하신 글도 제가 쓴 건데 ㅎㅎ 요즘 브라우저라면 앞의 점을 빼고 그냥 this.com으로 세션도메인을 지정하면 메인 도메인과 서브도메인까지 모두 되어야 정상입니다만, 우리나라에는 워낙 오래된 브라우저 사용자가 많아서... ;;
정 안되면 그냥 this.com은 포기하고 www.this.com을 사용하시면 안될까요? 서버 설정을 적당히 해주면 this.com으로 접속했을 때 www.this.com으로 redirect시켜 주도록 할 수 있습니다.