설명
인증 토큰이나 세션 ID를 담는 쿠키에 HttpOnly 속성이 없으면 브라우저 JavaScript가 쿠키 값을 읽을 수 있습니다. XSS가 발생한 경우 공격자는 스크립트로 쿠키를 탈취해 사용자를 가장할 수 있습니다.
잠재적 영향
- 세션 탈취
- 인증 토큰 노출
- XSS와 결합된 계정 접근
해결 방법
- 민감한 쿠키에는
HttpOnly=true를 설정합니다. Secure=true와 적절한SameSite정책도 함께 적용합니다.- 쿠키 생성 로직을 공통화해 보안 속성을 기본값으로 강제합니다.
예시
변경 전
java
Cookie cookie = new Cookie("sid", token);
response.addCookie(cookie);
변경 후
java
Cookie cookie = new Cookie("sid", token);
cookie.setHttpOnly(true);
cookie.setSecure(true);
response.addCookie(cookie);
설명:
- 변경 전: 인증 정보나 세션 ID 같은 민감한 값을 담는 쿠키에 HttpOnly를 설정하지 않으면 브라우저 스크립트가 쿠키 값을 읽을 수 있습니다.
- 변경 후: 민감한 쿠키에는 항상
HttpOnly=true를 명시합니다.