티스토리 뷰
[Spring] jsession 하이재킹 / prevent jsession hijacking / SSL_ID
/daydreamer 2016. 11. 22. 13:25session 하이재킹이란?
http://dokydoky.tistory.com/223
페이지 로그인시 로그인 뷰 페이지에서 java의 경우 고유 식별 가능한(?)
jsessionid가 발급된다. 그걸 쿠키에 저장시키는데,
이 jsessionid를 복사하여 다른 PC나 웹에 붙여넣으면 로그인 없이 로그인이 된다.
그니까 jsessionid만 알면 다른 사용자가 나의 정보를 볼수있고 빼낼 수 있다.
이게 session 하이재킹이라고..
그래서 이 session 하이재킹을 막아야 해서 구글을 검색하였다.
아래는 내가 찾은 몇가지 방법이다.
1. httponly 쿠키를 사용한다.
- 적용함
자바스크립트의 쿠키요청에 브라우저가 응답하지 않는다.
http://storyj.net/%EC%BF%A0%ED%82%A4cookie/
2. 아이피 등록, 비교를 함께 한다.
- IP가 같은 경우 해결할 수 없다.
3. 스프링 시큐리티를 사용하여 사용자가 로그인을 통해 인증한 이후
로그인전 기존 세션을 무효화 하고 새로운 세션을 생성한다.
- 스프링 시큐리티를 사용하지 않음
4. SSL_ID를 세션과 함께 체크한다.
http://stackoverflow.com/questions/1422977/how-to-prevent-tomcat-session-hijacking
1번도 1번이지만 4번을 통해 해결하였다.
역시 구글에는 모든답이 있다는것이 정말 정답이다.
테스트 결과 쿠키에 저장된 jsessionid 가 같아도 ssel_id가 다르기 때문에 로그인이 되지 않는다.
비교할 때 jsessionid와 ssl_id를 함께 비교해 주면 된다.
자세한건 나도 잘 모른다(하하ㅏ)
2016-11-28 추가
이 방법은 크롬에서 가능한 방법이라고 한다.
IE에서는 ssl session id를 제공하지 않는다. 그래서 안된다ㅠㅠㅠ
인터넷 익스플로러에서의 해결방법을 찾겠다.!!!
'업무 > 스프링프로젝트' 카테고리의 다른 글
[JAVA] 파일첨부 디렉토리 유무 검사 / 생성 / mkdirs() / 파일 복사 / 저장/ 삭제 (0) | 2016.11.30 |
---|---|
[mybatis] select / Type / parameterType / resultMap / select문 (0) | 2016.11.22 |
[mybatis] 파라미터 바인딩 / Type / update문 (0) | 2016.11.18 |
[Spring] servlet에 포함되지 않는 확장자 파일 web.xml의 servlet-mapping에 확장자 정의 (0) | 2016.11.16 |
[JAVA] 재귀함수 / 재귀호출 / 나의 부모의 부모 데이터 (0) | 2016.10.20 |
- Total
- Today
- Yesterday
- spring
- jsp
- 체크박스전체선택
- servlet
- c 태그
- 스크립팅 요소
- foreach 배열
- SQL
- Javascript
- Split
- 게시판table설계
- 윈도우8.1
- 자바
- windows hyper-v
- input[type=file]초기화
- jsp 기초 개념
- 체크박스
- servlet게시판
- java
- 제이쿼리
- 자바스크립트
- 게시판페이지설계
- selectbox에 값 매핑
- input[type=text]초기화
- 스프링
- String[] 파라미터
- Hyper-V
- windows 8.1
- 체크박스전체해제
- 이클립스DB연결
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |