Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 보안 쿠키(Secure Cookie)란 무엇이며, 왜 중요할까?

보안 쿠키(Secure Cookie)는 HTTP/HTTPS 환경에서만 동작하도록 설계된 쿠키로, 흔히 HttpOnly 쿠키라고도 불립니다. 이러한 쿠키는 오직 HTTP 요청을 통해서만 사용할 수 있기 때문에 악의적인 스크립트를 통한 접근이 불가능합니다. 그 결과 XSS(교차 사이트 스크립팅) 공격을 효과적으로 차단할 수 있고, 이는 곧 다양한 보안 위협으로부터 사용자를 보호하는 것을 의미합니다.

Secure 속성과 HttpOnly 플래그

보안 쿠키에는 항상 secure 속성이 활성화되어 있습니다. 이 속성이 설정된 쿠키는 오직 암호화된 연결(HTTPS)을 통해서만 전송되므로, 네트워크 도청이나 데이터 유출 같은 보안 문제 없이 안전하게 주고받을 수 있습니다.

반면 httpOnly 플래그는 JavaScript를 포함한 어떠한 비HTTP 방식으로도 쿠키에 접근하지 못하도록 막습니다. 즉, document.cookie와 같은 클라이언트 측 코드로는 해당 쿠키 값을 읽거나 조작할 수 없습니다. 이 두 가지 설정은 모두 서버가 보내는 Set-Cookie 응답 헤더에 포함되어 지정됩니다.

설정 예시

Set-Cookie: sessionId=abc123; Secure; HttpOnly

왜 두 속성을 함께 사용해야 할까?

secure 속성과 httpOnly 플래그는 각각 다른 역할을 하지만 함께 사용할 때 시너지 효과를 발휘합니다. 두 설정이 모두 적용되면 브라우저는 악성 스크립트가 보안 쿠키 데이터에 접근하는 것 자체를 허용하지 않습니다. 덕분에 세션 탈취(session hijacking)나 XSS 기반 공격으로부터 민감한 정보를 더욱 확실하게 지킬 수 있습니다.