끊기지 않는 세션을 만들려면 어떻게? > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

끊기지 않는 세션을 만들려면 어떻게? 정보

Mobile 끊기지 않는 세션을 만들려면 어떻게?

본문

여기에 질문 올려 죄송합니다 ^^;;;;;

세션함수를 아무리 주물러도 원하는 결과를 얻을수 없네요
세션의 저장기간을 연장하는것도 힘들지만 줄이는것 역시 힘드네요 왜그러죠?? ^^

제가 궁금한건..
모바일싸이트의 경우 단말 아이피가 유동적으로 계속 바뀌는데
세션의 유지기간을 연장하더라도 아이피라든지 여타 접속 환경에 따라
로긴을 유지하는 스킴이 일밥 웹하곤 다를것 같다는 생각이 드는데요..

혹시 네이버처럼 모바일에서 로긴 유지하는 팁 없을까요????
제발~~~~


session

Session Supportenabled
Registered save handlersfiles user

DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.bug_compat_42OnOn
session.bug_compat_warnOnOn
session.cache_expire9999999999180
session.cache_limiterprivatenocache
session.cookie_domain.....no value
session.cookie_lifetime00
session.cookie_path//
session.cookie_secureOffOff
session.entropy_fileno valueno value
session.entropy_length00
session.gc_divisor100100
session.gc_maxlifetime99999999995400
session.gc_probability11
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_path../data/session/tmp
session.serialize_handlerphpphp
session.use_cookiesOnOn
session.use_only_cookiesOffOff
session.use_trans_sidOffOff

추천
1

댓글 13개

곰곰히 생각을 해봤는데..
모바일의 경우 개인기기이기 때문에 굳이 세션을 이용할 필요가 없을것 같다는 생각이 드는데요..
모바일의 고유번호?? 이게 뭔지는 모르겠지만.. 이런게 있다면 읽어서
로그인시 디비에 쓰고 다음 접속시 1순위로 고유번호와 디비가 일치하면 로긴유지
다르다면 로긴요구 이렇게 하는 방법도 있지 않을까 싶습니다.
다른 아이디로 로긴할 필요도 있기 때문에 로그 아웃시 디비를 초기화 하고..
이게 구현 가능할지도 의문이고
또 이렇게 하면 어떤 문제가 있을까요?
세션 삽질한 이유는 찾았네요.. 에휴~
session.gc_probability = 1 이게 문제였군요 divisor와 연계해서 1% 확률로 동작하기때문에
아무리 lifetime을 조정해도 100번 시도 1번 삭제네요..
방문자가 많은 싸이트는 꼭 1로 해야 하나 테스트 용도웹이라면 이걸 꼭 100으로 놓고 시험해야 되네요..
이건 정말 팁입니다 ^^
그리고, 모바일의 고유번호 mac 정보 이런걸 뽑기가 어렵군요.. 좀더 검색해봐야 겠음...
해결된것 같네요

common.php 파일 수정합니다.

1. 아래 주석처리
//ini_set("url_rewriter.tags",""); // 링크에 PHPSESSID가 따라다니는것을 무력화함 (해뜰녘님께서 알려주셨습니다.)

2. 아래 참조
ini_set("session.cache_expire", 60*24*30); // 세션 캐쉬 보관시간 (분)
ini_set("session.gc_maxlifetime", 60*10); // session data의 gabage collection 존재 기간을 지정 (초), 이게 expire보다 우선임
ini_set("session.gc_probability", 0);  // session.gc_divisor(100)과 연계하여 %확률로 세션지워줌, 테스트시 100 권장
session_set_cookie_params(60*60*24*365, "/"); // 쿠키 세션 연동 유효시간 설정(초)
ini_set("session.cookie_domain", $g4['cookie_domain']);
@session_start();

3. 아래 주석처리
// 4.00.03 : [보안관련] PHPSESSID 가 틀리면 로그아웃한다.
//if ($_REQUEST['PHPSESSID'] && $_REQUEST['PHPSESSID'] != session_id())
//    goto_url("{$g4['bbs_path']}/logout.php");

4. PC에서 모바일 페이지 접속되지 않도록 방어 코드 삽입 index.php 에 넣는게 좋을것 같네요

모바일브라우져에서 쿠키사용 안하거나 지우면 다시 로긴해야 하구요.. 이건 시험해보니 네이버도 마찬가지 네요

이것도 팁 되겠쉼돠~~~ ^^
pc에서는 그렇지만.. 모바일에선 감수할수 있지 않을까요? 타인의 손에 넘어가면 위험할수도 있지만 본인의 편의를 위해 사용하는거라.. 감수할 부분이지 않을까 싶네요...
그렇게 해도 안돼요~ ^^
모바일 뿐만 아니라 일반웹에서도 자동로긴은 금방 풀려버려요~
그누보드에서 가장 아쉬운게 아이디 패스워드 기억하는 방법과 자동로긴이 잘 안된다는거..
모바일에 익숙해지시면 php 세션을 가지고는 불가능한 경우는 아주 많이 나옵니다.
그리고 모바일웹에서 하이브리드나 j쿼리 모바일 등의 프레임웍을 사용해야 할때도 벽에 부딪치므로
로그인 관련해서는 jquery나 자바스크립트 + ajax + php를 이용해서 방법을 하나 정도는 만들어 두시는게 좋은데 개인적인 생각입니다.~

저 같은 경우는 쿠키로 세션을 갱신시키면서 체크하는 방법을 쓰고 있습니다.
보안상 취약점은 모바일은 아무리 해도 완벽에 가깝게도 만들수 없겠더라구용~
전체 63
개발자팁 내용 검색 Mobile에서

회원로그인

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