서브 도메인에서 www 도메인의 로그인 정보를 가져오는 방법
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.1 |
www 도메인에는 라이믹스가, 그리고 서브도메인은(이해를 위해 subdomain.xetown.com 이라고 하겠습니다) 다른 php프로그램이 설치되어 있습니다.
물론 라이믹스와 서브도메인이 php-fpm 실행되는 유저 계정은 다릅니다.
<?php
chdir('라이믹스가 설치된 폴더'); // 외부페이지가 어느 폴더에 있는지에 따라 다릅니다.
include 'common/autoload.php';
Context::init();
echo Context::get('logged_info')->nick_name;
위 방법을 통해서 subdomain.xetown.com 에서 www.xetown.com 에 현재 로그인된 유저 정보를 가져오려고 하는데
php에서 null값을 출력하더라구요
보안적으로 안될것같다는 예상이 되긴 하는데, 원래 안되는게 맞을까요?!
질문전에 검색을 해서 https://xetown.com/tips/1096625 을 찾았고
php.ini을 수정해보았으나 저도 마찬가지로 작동을 하지 않더라구요...
댓글 6
로그인유지된 정보들은 대부분 SESSION을 통해서 통신합니다.
남의 도메인의 SESSION값을 탈취할 수 있다는 것은 해당 사이트에 치명적인 보안 취약점이 될 수 있겠지요?
왼만하면 안건드리는것을 추천하고, SSO관련 기능을 알아보시는게 좋겠습니다.
도메인설정에 보시면 SSO관련 설정이 있어 도메인이 바뀌어도 로그인정보를 공유하는 옵션이 라이믹스에 있거든요.는 폐기일보직전의 기능이군요.. 같은 서브도메인내에서는 님이 링크해주신 게시글의 댓글을 보시는게 좋겠네요
다만 그 다른 프로그램에서 라이믹스의 정보를 가져올 수 잇는 방식으로 개발이 되어야겠지요...
감사합니다!
단, 설정 변경 후 로그아웃 -> 재로그인하시거나 브라우저의 쿠키를 모두 비워야 변경사항이 적용됩니다. 기존 세션이 살아있는 동안에는 설정을 바꿔도 적용되지 않습니다. 관리자라면 테스트를 위해 쿠키를 비울 수 있겠지만 일반 사용자들에게 쿠키를 비우라고 요구하기는 어려우니, 사실상 한 번 설정하면 변경하기 힘든 부분입니다.
fpm을 실행하는 리눅스 유저 계정이 달라도
session.cookie_domain 만 제대로 설정되어있으면 문제가 없을까요?!
계정이 다르다면 퍼미션 문제 때문에 기본값인 files 세션 핸들러는 사용할 수 없을 테니
memcached, redis 등 다른 방법을 찾아보셔야겠네요.