세션 삭제에 대한 예외처리 미흡으로 발생.
세션을 지우면 권한이 없어서 조회가 안되던 데이터를 조회할 수 있는 취약점 발견 시 조치방안
1. getSession(), getSession(true)
- HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로 세션 생성
2. getSession(false)
- HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로 생성하지 않고 null 반환
3. 사용 예
HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
위는 동일한 결과 리턴
새로 생성된 세션인지 확인 : session.isNew() (새로 생성된 세션이면 true 반환)
getSession(), getSession(true)는 null 체크없이 바로 getAttribute()를 사용해도 무방하지만, getSession(false)는 null을 리턴할수 있기 때문에 null체크를 해야함
Ex1)
HttpSession session = request.getSession(false);
if(session == null) {
throw new HandleException("ERROR");
}
Ex2)
HttpSession session = request.getSession(false);
if (session != null)
User user = (User) session.getAttribute("User");
'보안 및 개발 > WEB' 카테고리의 다른 글
CSRF 취약점 진단 방법 (0) | 2020.01.13 |
---|---|
[Arachni] Password field with auto-complete (0) | 2020.01.03 |
[Web] arachni scanner 사용법 (0) | 2019.12.23 |
[APT] 정보수집 (0) | 2019.12.18 |
로그인 구현 시 참고사항 (0) | 2019.12.10 |