Secure 속성이 없는 쿠키 설정 취약점

Sensitive Cookie in HTTPS Session Without 'Secure' Attribute

설명

쿠키(Cookie)가 Secure 속성을 설정하지 않은 경우, HTTP(비암호화) 연결을 통해 전송될 수 있어 중간자 공격(Man-in-the-Middle, MitM)에 의해 탈취될 위험이 있습니다. HTTPS를 사용하는 애플리케이션에서는 쿠키가 암호화된 연결을 통해서만 전송되도록 Secure 속성을 반드시 설정해야 합니다.

잠재적 영향

  • 세션 하이재킹(Session Hijacking): 공격자가 네트워크 트래픽을 감청하여 사용자의 세션을 탈취할 수 있습니다.

  • 개인정보 유출: 로그인 정보, 인증 토큰 등 민감한 쿠키 값이 노출될 수 있습니다.

  • 불법적인 계정 접근: 공격자가 탈취한 세션을 이용하여 사용자의 계정에 접근할 수 있습니다.

해결 방법

  1. 쿠키의 Secure 속성을 true로 설정

    • 쿠키가 HTTPS에서만 전송되도록 cookie.setSecure(true)를 적용해야 합니다.

  2. 기타 보안 속성 설정

    • HttpOnly: JavaScript를 통해 쿠키에 접근할 수 없도록 설정 (cookie.setHttpOnly(true))

    • SameSite: 크로스 사이트 요청에서 쿠키가 전송되지 않도록 제한 (cookie.setPath("/"))

취약한 코드 및 안전한 코드 예시

취약한 코드

안전한 코드

설명:

  • 취약한 코드:

    • Secure 속성을 설정하지 않아 HTTP 요청에서도 쿠키가 전송될 수 있음.

  • 안전한 코드:

    • setSecure(true), setHttpOnly(true), setPath("/")를 설정하여 보안 강화.

참조

Last updated