XETOWN

호수 공원

XE 사용에 대한 여러가지 정보들을 공유할 수 있습니다.
조회 수 103 추천 수 0 댓글 10
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

어제 우연히 테스트를 해봤습니다.

 

비밀번호가 노출되었다는 것을 스스로 인지했음을 가정하고 제가 비밀번호를 새롭게 변경했습니다. 그런데 예상과는 다르게 여타 다른 단말기들의 로그인 상태가 계속 유지가 되더군요.

 

이럴경우 악의적인 대상이 로그인상태로 할 수 있는 활동을 여전히 하고 있을 것으로 생각하니 찜찜했습니다. 회원들도 이 사실을 안다면 굉장히 찜찜할 것 입니다.

 

특히 이 악의적인 대상이 자동로그인을 사용했다면 그 상태가 더 오래 유지될 가능성이 매우 높습니다. 저는 왜 비밀번호 변경시 변경성공한 단말 이외의 다른 단말기들의 로그인상태를 비로그인 상태로 전환을 시키는 작업이 없을까? 하는 의문이 생겼습니다.

 

 

1.로그인을 유지시키는 것이 세션이라는 불리우는 것이 담당하는건가요?

2.비밀번호수정 완료 액션에 이 로그인과 관련된 세션을 지우는 작업을 수행하는 애드온이 실현 가능한가요?

- 비밀번호수정한 단말은 제외

3.이건 모든 XE사용하는 사이트에 적용이 되어야 하는 거 아닐까요?

4.제가 가진 의문에 오류사항이나 다른 제가 알고 있지 못하는 부분이 있나요??

 

 

  • profile
    기진곰 2016.08.02 14:21:28

    1. 네.

     

    2. XE타운에서 사용중인 자동로그인 모듈에 비슷한 기능이 있습니다만, 자동로그인을 사용하는 단말기만 삭제되고 일반 로그인은 그대로 유지될 것 같습니다.

     

    3. 보안상 아주 쓸모있는 기능이기는 합니다만...

     

    4. 기본적으로 PHP에서는 현재 세션 이외의 세션을 조작할 수 없습니다. 일반적인 방법으로는 같은 회원이 다른 곳에서 로그인했는지 파악할 수도 없고, 다른 세션을 강제로 로그아웃시킬 수도 없습니다. "인증 세션 DB 사용"을 켜두셨다면 DB에서 다른 세션을 검색하여 삭제하는 것이 가능하겠지만, 성능 문제 때문에 대체로 안 쓰는 기능이죠.

     

    세션을 DB에 저장하지 않고 우회적으로 차단하는 방법이 없지는 않으나, XE의 실행구조상 로그인 처리보다 애드온 처리가 나중에 이루어지기 때문에 애드온으로 구현하려면 상당히 귀찮아집니다. 세션 쉴드 애드온도 꽤 지저분한 방식을 사용하고 있고, 처리 시점이 늦기 때문에 100% 안전하지도 않습니다. (강제 로그아웃시키기 전에 이미 위험한 행동을 했을 수도 있어요.)

  • profile
    웹지기 2016.08.02 14:34:31

    2.자동로그인 모듈이 공홈에 배포중인 자료라면 그것으로 테스트해보았으나 자동로그인 등록이 다른 단말기들이 삭제 되지 않아요. 해당 단말기들에서 로그아웃을 해줘야 삭제가 됩니다. 

     - 일단 자동로그인 등록이라도 삭제가 가능한지 이슈를 남겨드렸는데 오랜 이슈도 처리를 안하고 계시더라구요.

    4.번에 의하면 현실적으로 가능하지 않은 방법이라는 설명이시네요.

  • profile
    웹지기 2016.08.02 14:39:31

    추가로 4번 설명에서 강제 로그아웃시키기전에 이미 위험한 행동을 했을수도...
    - 이부분은 어쩔수 없는 상황이니 이를 염두한 건 아니구요. 내가 인지한 시점에서 가장 빨리 일단 그 사람의 로그인 상태를 로그아웃 으로 만들어야 하지 않냐 하는 관점이에요.
    - 패스워드 탈취가 아닌 로그인상태의 브라우저를 우연히 발견하고 이상행동을 하고(회원에게 마이너스적인 활동) 있는 상황이라면 일단 그 행위를 멈추게 해줄 수는 있을거 같다는 생각을 했습니다.

  • profile
    웹지기 2016.08.02 14:43:32

    혹시 이 자료는

    https://www.xpressengine.com/index.php?mid=download&package_id=22753492

    같은 방식으로 처리되는 것 같은데요. 이 자료도 그렇다면 동작을 안하고 있을까요? 이 자료는 패스워드 변경이 아닌 제한일 설정하면 즉시 로그아웃처리를 한다는 애드온인데요.

    ---------------------------------------------------------------

    코드를 살펴보니 케이스가 달라서 비교가 어렵군요.

    보니까 제한이 걸렸으면 이라는 조건과 로그인이라면 이라는 조건으로 

    $oMemberController->procMemberLogout(); 

    으로 로그아웃 처리를 하네요..

     

    그런데 지금 현재 제가 생각하고 있는것은 비밀변호가 변경되었다면 이라는 조건이 필요해서 적용이 어렵겠군요.

     

     

  • ?
    SimpleCode 2016.08.02 14:55:30
    로그아웃시킨다는 점은 동일하지만, 기진곰님 말씀처럼 XE 구조상 중복 접속자를 로그아웃시키는 것은 쉽지 않습니다. 애드온으로 구현하면 뭔가 깔끔하게 처리가 안되고 코어를 건들여야 깔끔하게 처리가 될 것 같네요.

    비밀번호가 변경되는 순간 다른 접속자들에게 로그아웃하라는 명령을 내려야하는데, 인증 세션 DB 사용을 켜놓지 않았다면 로그인 하고 아무런 활동도 하지 않으면 로그아웃 처리를 할 수가 없는거죠.
  • profile
    웹지기 2016.08.02 14:58:40
    아무런 활동을 안하는건 괜찮구요. 활동을 위해 페이지 이동을 하는 순간 로그아웃 처리가 되는거죠. 인증세션 DB 사용은 무리가 있다는 것은 같은 생각이에요.
  • profile
    기진곰 2016.08.02 14:57:55
    이게 그나마 가장 비슷한 기능인 것 같네요.

    별도로 날짜를 지정해 놓고 그 날짜 이전에 만들어진 세션은 인정하지 않는다는 점에서 제가 생각하고 있던 방식과 흡사하지만, 회원 모듈의 limit_date와 달리 비밀번호 변경 시점은 따로 기록되지 않기 때문에 처리가 조금 더 복잡해질 것 같습니다.
  • profile
    웹지기 2016.08.02 14:59:22
    그러니까요. 그게 가장 큰 걸림돌로 예상했어요. 방금 비밀번호가 변경되었다는 기록이 없으니 조건을 걸수가 없다는 거요 ㅡㅡ;
  • profile
    기진곰 2016.08.02 15:03:14

    files/member_extra_info 폴더 내에 회원마다 각각 파일을 만들어서 비번 변경 시점을 별도로 기록해 두는 방식이 되어야겠네요. 비번 변경을 감지하는 것은 member.procMemberModifyInfo 트리거를 사용하거나 애드온에서 act를 기준으로 잡아내고요.

  • profile
    웹지기 2016.08.02 15:05:25
    아마 XE팀에서는 이런거 처리 해줄리가 없으니 별도 모듈이라도 패스워드변경 기록모듈 + 애드온 으로 하면 처리가 가능해지겠군요.. 흠....

    사실 어제 네이버로그인에서 보호조치로 인해 타 단말기들이 다 로그아웃 처리가 되는데 api 연동한 xe에서 로그인이 계속 유지되길래 api 사용이 잘못된 줄 알았습니다. 혹시나 해서 소셜로그인을 사용하지 않는 저희 사이트에서 테스트를 해보니 구조적으로 대비가 안되어있더라구요...

List of Articles
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 20 람보 2015.12.31
화제의 글 XE 사용팁 화제의 글 애드온 공지로 출력된 글 배경 색 다르게.... file 웹지기 2016.11.28
3783 질문/답변 SSL있고 없고 차이가 뭔지 자세히좀 알려주세요.ㅠ 15 DIZAK 2016.12.02
3782 질문/답변 코드 질문 2 보고하비 2016.12.02
3781 질문/답변 출첵 버튼 2 스트릿 2016.12.02
3780 질문/답변 서버이전... 7 Jack 2016.12.02
3779 질문/답변 갑자기 홈페이지가 500 뜨네요. 5 BlackTeddyBear 2016.12.01
3778 질문/답변 슈퍼캐시에서 화제의글 file시 캐시갱신 안되는문제 4 마신 2016.12.01
3777 질문/답변 nginx /xe 경로에서 rewrite 설정이 궁금합니다. 2 하늘맑음 2016.12.01
3776 질문/답변 nginx php7.0 mariadb 에서 nginx 의 설정 값을 알고싶습니다. 3 하늘맑음 2016.12.01
3775 질문/답변 플랫모바일 사용중인데 요기 앞에 게시글 번호 쓸수 있나요? 3 file 낙타 2016.12.01
3774 질문/답변 폰트 이름을 알고 싶습니다. 8 file 구름이 2016.11.30
3773 질문/답변 http:// 를 https://www. 로 변경 7 육식염소 2016.11.30
3772 질문/답변 게시판 권한 질문 5 데버 2016.11.30
3771 질문/답변 비공개 사이트 만드는법이나 소스가 있을까요?ㅠㅠ 3 목요일같은오후 2016.11.30
3770 질문/답변 xe 템플릿 import 와 load 차이점을 알고 싶습니다. 3 구름이 2016.11.30
3769 질문/답변 memcached 서버 이전 관련 질문 7 madnomad 2016.11.30
3768 질문/답변 git 강좌나 책 추천 부탁 드립니다. 구름이 2016.11.30
3767 질문/답변 모바일 레이아웃을 찾습니다. 4 구름이 2016.11.30
3766 질문/답변 결제하면 동시에 그룹 등업이 되는 기능 가능할까요? 2 file 꿈이몬가 2016.11.30
3765 질문/답변 www 붙인 주소로 접속시 로그인이 풀린채로 보이는 문제 6 마끼아토 2016.11.30
3764 질문/답변 cname설정 방법아시는분 계신가요 2 Jack 2016.11.29
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 193 Next
/ 193
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...