티스토리 뷰

반응형

 

 

 

가. 원인

  - 외부 입력값을 검증하지 않고 외부 사이트로 자동연결

 

 

나. 영향

  - 피싱사이트 연결

  - 크로스 사이트 스크립트 공격

 

 

다. 보안대책

  - 자동연결할 외부 사이트의 URL과 도메인을 화이트 리스트로 관리 및 사용

 

 

라. 안전한 코드

1. 화이트 리스트로 URL 검증

 

  String allowedUrl[] = { "/main.do", "/login.jsp" };

  int index = Integer.parseInt( request.getParameter("index") );

  if ( index > -1 && index < allowedUrl.length ) {

    response.sendRedirect ( allowedUrl[ index] );

  }

 

 

 

마. 진단방법

<리다이렉트 URL 검증>

  1. 외부 사이트로 리다이렉션 하는 함수나 메서드가 존재하는지 확인

  2. 리다이렉트 하는 함수가 외부입력값을 사용하는지 확인

  3. 외부 입력값의 주소에 대한 유효성을 검증하는지 확인

 

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. 검증없이 페이지 이동 URL에 입력값이 사용될 경우

 

<오탐 케이스>

  1. getContextPath() 함수는 내장함수로 context path를 리턴하므로 안전

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday