August 9, 2025
2 min read
HTTPOnly 쿠키는 클라이언트 측 스크립트 공격, 특히 교차 사이트 스크립팅(XSS)에 대한 실질적인 완화책입니다. 쿠키에 HTTPOnly
속성이 설정되면 브라우저에 document.cookie
를 통한 것과 같은 클라이언트 측 JavaScript 액세스로부터 해당 쿠키를 보류하도록 지시합니다. 이 보안 속성은 악성 스크립트가 브라우저의 스크립팅 엔진 취약점을 악용하여 세션 식별자나 민감한 데이터를 탈취하려는 공격 벡터를 구체적으로 다룹니다.
실증적 평가는 세션 쿠키에 HTTPOnly 플래그를 활성화하면 XSS 공격을 통한 세션 도용 위험이 상당히 감소한다는 것을 보여줍니다. 통제된 침투 테스트 환경에서 연구원들은 다음을 관찰했습니다.
Barth et al.은 “XSS 공격의 대부분은 JavaScript의 document.cookie 읽기 및 세션 토큰 유출 기능을 활용한다”고 밝혔습니다(Barth et al., 2008). 이 실험은 HTTPOnly 쿠키가 있는 웹 애플리케이션과 없는 웹 애플리케이션에서 XSS 페이로드를 시뮬레이션하는 것을 포함했습니다. 결과에 따르면 HTTPOnly가 있을 때는 쿠키 도용 시도가 100% 실패율을 보인 반면, 없을 때는 100% 성공률을 보였습니다.
추가 연구에 따르면 HTTPOnly는 페이지 콘텐츠를 수정하거나 인증된 작업(CSRF)을 수행하는 것과 같은 모든 형태의 XSS를 방지하지는 못하지만, XSS의 가장 파괴적인 결과인 세션 손상에 대한 중요한 장벽입니다.
주요 결과:
실제로 HTTPOnly 구현은 포괄적인 방어를 위해 다른 보안 지시문(예: Secure 및 SameSite 플래그)과 결합되어야 합니다. 제한 사항은 다음과 같습니다.
전반적으로 이 속성의 효과는 학계 및 업계 연구에서 잘 확립되어 웹 애플리케이션 세션 보안을 위한 필수 제어로서의 역할을 확인시켜 줍니다.