티스토리 뷰

반응형

 

 

 

가. 원인

  - 개인정보 / 인증정보 / 금융정보와 같은 중요정보를 영속적인 쿠키에 저장하는 경우

 

 

나. 영향

  - 쿠키에 저장된 중요정보 유출 및 변조를 통해 사용자 권한 / 인증을 우회

 

 

다. 보안대책

  - 쿠키 만료시간을 최소한으로 설정

  - 영속적 쿠키(Max-Age)에 사용자 권한등급, 인증정보 등의 중요정보를 포함 제외

 

 

라. 안전한 코드

1. 쿠키 만료시간 설정

 

  ...

  if ( !checkLogin( this.ID, this.PASS ) ) {

     showAlert( "Not Allow Login" );

     return;

  }

  ...

  String saveID = request.getParameter( "save_id" );

  Cookie loginCookie = new Cookie ( "save_id", saveID );

  loginCookie.setSecure( true );

  loginCookie.setHttpOnly( true );

  // 60초 * 60분 * 24시간 => 1 Day

  loginCookie.setMaxAge( 60*60*24 );

  ...

 

 

 

마. 진단방법

<쿠키확인>

  1. 쿠키를 사용하는지 확인

  2. 쿠키 유효시간을 확인

  3. 쿠키 내 중요정보가 포함되어 있는지 확인

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. 쿠키 만료시간을 1년으로 과도하게 길게 설정하고 있을 경우

 

<오탐 케이스>

  1. 쿠키의 만료시간을 해당기능에 맞춰 최소로 설정하고 있을 경우 (ex. 1 Day)

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