서브도메인 세션공유가 안되어야 하는데 되어서 문의합니다.

서브도메인 세션공유가 안되어야 하는데 되어서 문의합니다.

QA

서브도메인 세션공유가 안되어야 하는데 되어서 문의합니다.

본문

example.com
sub1.example.com

sub2.example.com

 

이렇게 구성이 되어있습니다.

 

example.com, sub1.example.com은 서로 세션이 공유되어야 하고요

sub2.example.com는 세션이 공유되면 안됩니다.

 

현재 

example.com, sub1.example.com는 공유가 잘 됩니다. 허나

 

example.com, sub2.example.com는 세션이 공유가 안되는데

sub1.example.com에서 로그인하면 sub2.example.com가 로그인 됩니다.

sub1.example.com에서 로그아웃 해도 sub2.example.com가 로그아웃 안됩니다.

sub2.example.com에서 로그인해도 sub1.example.com에 로그인 안됩니다.

 

희한하게 동작하더라고요

 

sub2.example.com에서는 세션공유를 안하려고 세션저장폴더를 바꿔서 사용합니다.

 

example.com, sub1.example.com의 설정은 아래와 같이 동일합니다.


config.php
define('G5_COOKIE_DOMAIN',  '.example.com');
 
common.php
// 세션파일 저장 디렉토리를 지정할 경우
//session_save_path(G5_SESSION_PATH);

=============================================

sub2.example.com

 


config.php
define('G5_COOKIE_DOMAIN',  '');
 
common.php
// 세션파일 저장 디렉토리를 지정할 경우
session_save_path(G5_SESSION_PATH);

이 질문에 댓글 쓰기 :

답변 3

세션쿠키이름 충돌방지


// sub2.example.com 설정
session_name('sub2_session');

이렇게 되어 있는지 확인해 보신후 설정이 제대로 되어 있는데도 적용이 안되신다면, 다음 사항을 체크해 보세요

 

php 세션 살정 확인

PHP의 session.cookie_secure 및 session.cookie_httponly 설정이 서로 다른 서브도메인 간에 일관되게 설정되어 있는지 확인해 보세요

session.cookie_secure
session.cookie_httponly

이 두 속성은 php.ini에 있는건가요??
같은 서버에서 폴더만 다른채 돌아가고 있습니다.

G5_COOKIE_DOMAIN을 말씀하시는거라면 .example.com 으로 세 곳의 config.php 모두 동일하게 해놓았습니다.

data폴더는 심볼링링크로 연결해놓아서  같은 data폴더를 사용하고 있으나
세션폴더는 sub2.example.com 만 다르게 지정해놓은 상황입니다.

session_name도 안됩니다.
session_name은 sub2.example.com 만 해놔야 하는거 맞죠??

네 맞습니다.
php.ini 파일에 다음과 같이 정의 하시면 됩니다.

session.cookie_secure = 1
session.cookie_httponly = 1

또한


// sub2.example.com 설정
session_name('sub2_session');


sub2.example.com 의 config.php에서 설정하시면 됩니다.

https://gnuwiz.com/tip_tech/334?sfl=wr_subject&stx=%EC%84%B8%EC%85%98&sop=and

참고하세요.

답변 감사합니다.

sub2.example.com에 session_name 추가줬는데도 동일한 증상입니다.

서브도메인 세션공유가 안되는건 아닙니다.
되고있는데 특정 서브도메인에서만 세션공유를 안하려고 하는데
메인도메인에서 특정 서브도메인 세션공유는 안되는데
서브도메인끼리 세션공유가 되는 상황이라서요.

이것 머리아파요 골아프죠..

정말 꼼곰하게 하나씩 체크해야합니다. 또한 이게 어느 한부분만 틀려도 정말 뒤죽박죽됩니다.

 

일단 제일 먼저 같은 프로토콜을 사용해야합니다. 서로 다른 프로토콜은 웹표준 보안상 않되게 되어있습니다. 설령 된다해도 정상적이 지가 않아요 뒤죽박죽됩니다.

예를 들어보죠 한쪽은 http 고 또한쪽은 https 라고한다면 이건 성립이 않된다는거죠. 서로 보안상 공유가 않됩니다. 도메인또한 맞찮가지입니다. 서브도메인이면 서브도메인끼만 된다는것 참고하시면되겠습니다. 모두 웹표준 보안상 브라우저가 허용하지않습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 59,609
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT