XE 공식 자료실
애드온 세션 쉴드 ver. 1.4
- 제작자
- 기진곰
- 등록일
- 2015-03-29
- 다운로드 수
- 164
- 링크2
- kijin/xe-session-shield
XSS, CSRF 및 세션 고정 공격에 방어하고, 선택적 SSL 사용시 세션 탈취 가능성을 줄여 주는 애드온입니다. 세션과 쿠키를 함께 사용하여 공격 여부를 판단하며, 세션에 이상이 있을 경우 강제 로그아웃 조치합니다.
- 라이선스
- LGPL v2
- 설치경로
- ./addons/session_shield
- 최초 등록일
- 2015-02-11
- 전체 다운로드
- 3,537
쉬운설치로 바로 체험할 수 있습니다
상세 설명
XSS, CSRF, 세션 고정 공격에 방어하고, 특정 상황에서의 세션 탈취 가능성을 줄여 주는 애드온입니다. @AJKJ 님의 XSS Session Protector 애드온을 바탕으로 SSL 선택적 사용시의 세션 보안을 강화하고, CSRF 방어 기능을 추가하고, 정기적으로 세션 식별자를 교체해 주도록 개선했습니다.
XSS 방어를 위해 httpOnly 속성을 가진 xe_shield 쿠키, 세션 탈취 피해를 줄이기 위해 secure 속성을 가진 xe_shield_ssl 쿠키를 생성합니다. (스크린샷 참조) 이 쿠키들은 세션 고정 공격을 막기 위해 10분마다 자동 갱신되며, 로그인시에는 즉시 갱신됩니다. 세션에 저장된 쿠키 정보와 실제 전송된 쿠키값이 일치하지 않을 경우 해킹으로 간주하고 강제 로그아웃 조치합니다.
CSRF 방어를 위해서는 XE 코어의 checkCSRF() 함수가 이미 레퍼러 체크를 해주고 있지만, 이 함수를 호출하지 않는 모듈도 있으므로 완벽한 방어를 위해 별도로 토큰을 생성하여 웹페이지에 삽입하고 POST 방식의 폼 제출 및 AJAX 요청시 확인하도록 합니다. 세션에 저장된 토큰과 실제 폼에서 제출된 토큰이 일치하지 않을 경우 해킹으로 간주하고 폼 처리를 중단합니다.
SSO, 가상사이트, 같은 도메인 아래에 XE를 2개 이상 설치한 경우, 다른 프로그램과 로그인을 연동하는 경우, 일반 웹 방문자가 아닌 로봇을 위한 API를 운영하는 경우 등의 호환성은 충분히 테스트되지 않았으므로 주의하시기 바랍니다.
정상적인 사용자의 로그인이 풀리거나 정상적인 요청을 CSRF로 오인하는 등의 현상이 있다면 사용 환경(브라우저 종류, 인증세션 DB 사용 여부 등)에 대해 가능한 많은 정보를 포함하여 버그 신고를 해주시기 바랍니다.
로그인이 풀리는 문제가 발생한다면 REFRESH_TIMEOUT = 0 으로 변경하여 세션 식별자 교체 기능을 꺼 주시기 바랍니다. 기본 설정보다는 보안이 다소 약해질 수 있으니 꼭 필요하신 경우에만 변경해 주시고, 가능하면 SSL 환경에서 사용해 주십시오.
CSRF 방어 기능을 끄려면 $shield->checkCSRFToken() 부분을 주석처리해 주십시오. 코어와 함께 배포되는 모듈들만 사용하신다면 코어에서 제공하는 CSRF 방어 함수만으로도 충분합니다.
포럼 4
-
2015-04-04 09:47:01 제작자 기진곰
@ひりゅう. 해당스킨 테스트해 보고, 호환성을 개선한 버전을 배포하도록 하겠습니다. 일단 CSRF 방어 기능을 끄거나 1.3 버전으로 다운그레이드해서 쓰시기 바랍니다.
-
2015-04-04 09:08:07 ひりゅう.
해당 애드온 사용시
플랫 모바일 스킨에서 첨부파일 업로드가 되지않네요
그동안 1.1 버전을 사용해왔는데 업데이트후부터 발생하며
해당애드온 사용해제시 정상업로드됩니다 -
2015-04-03 19:17:35 제작자 기진곰
@IOZ 네, 관리모듈은 모듈 전체가 checkCSRF() 적용되어 있으니 빼줘도 되겠네요. 그런데 정확히 어느 화면에서 경고창이 뜨나요? 회원목록에서 이것저것 해봤지만 저는 찾을 수가 없네요. 가능하면 브라우저 종류도 알려주시면 감사하겠습니다.