웹 애플리케이션을 보호하는 방법 중 하나가 바로 보안 헤더(Security Headers) 설정입니다.
보안 헤더는 브라우저에게 어떻게 콘텐츠를 처리할지 지침을 주는 설정이며,
적절히 설정하면 XSS, Clickjacking, 데이터 탈취 같은 공격을 막을 수 있습니다.
이번 글에서는 대표적인 보안 헤더 5가지를 쉽고 간단하게 정리해보겠습니다.
XSS 방어에 핵심적인 헤더
허용된 도메인에서만 리소스(JS, CSS 등)를 로드하도록 제한
예시 설정: Content-Security-Policy: default-src 'self'; script-src 'self' cdn.example.com;
효과: 외부 악성 스크립트 실행 차단 → XSS 방어 가능
Clickjacking 방지
해당 페이지가 iframe으로 로드되는 것을 차단
예시 설정: X-Frame-Options: DENY
MIME 타입 오용 방지
브라우저가 콘텐츠의 파일 형식을 임의로 추측하지 못하도록 차단
예시 설정: X-Content-Type-Options: nosniff
효과: 악성 파일이 잘못 실행되는 위험 방지
HTTPS 강제 접속
브라우저가 해당 도메인에 항상 HTTPS로만 접속하도록 설정
예시 설정: Strict-Transport-Security: max-age=31536000; includeSubDomains
Referer 정보 제한
외부로 전달되는 Referer 정보의 범위를 제한
예시 설정: Referrer-Policy: no-referrer
효과: 내 사이트의 방문자 정보 유출 방지
| 헤더 | 주요 목적 |
|---|---|
| CSP | XSS 방지 |
| X-Frame-Options | Clickjacking 방지 |
| X-Content-Type-Options | 파일 형식 오용 방지 |
| HSTS | HTTPS 강제 |
| Referrer-Policy | 방문자 정보 보호 |
보안 헤더는 설정만 잘해도 웹 보안 수준을 크게 높일 수 있는 방어 수단입니다.
실무에서도 많이 활용되므로, 지금 개념을 익혀두면 실습이나 취약점 분석할 때 도움이 됩니다.