제공 서비스
웹 보안 점검 소스코드 분석 (SAST) CRM 보안 진단 다크웹 유출 조회
요금제 스토어 블로그 파트너 마이페이지 무료 보안 점검
웹 보안 기초 2026.05.03 · 조회 302

HTTP 보안 헤더 8종 실전 설정 — HSTS·CSP·X-Frame부터 Permissions-Policy까지 [2026]

HTTP 보안 헤더 8종은 서버 코드 수정 없이 브라우저 단에서 XSS·클릭재킹·MIME 스니핑을 막는 1차 방어선이다. Mozilla Observatory 기준 전체 웹사이트의 절반 이상이 기본 헤더조차 미설정 상태다. Nginx·Apache·Cloudflare 설정 예시와 RFC 출처까지 정리했다.

HTTP 보안 헤더 8종을 전부 설정한 웹사이트는 생각보다 드물다. Mozilla Observatory 통계 기준, 전체 스캔 사이트의 60% 이상이 CSP를 누락하고 있고, HSTS 미설정 사이트는 절반을 넘는다. Scott Helme의 2023 Web Almanac 분석에서도 상위 100만 개 사이트 중 HSTS를 올바르게 설정한 곳은 30% 수준이었다. 서버 코드 한 줄 안 바꾸고 설정 몇 줄로 막을 수 있는 공격을 그냥 열어두고 있는 셈이다.

HTTP 보안 헤더가 왜 중요한가

보안 헤더는 브라우저 동작을 서버가 명시적으로 제어하는 방식이다. 공격이 들어오기 전에 브라우저 레벨에서 실행 자체를 막는다. 보안 전문 기업 SENTRIX가 실제 보안 점검에서 확인한 패턴을 보면, X-Frame-Options 미설정 + 인증 없는 관리자 버튼이 같이 있을 때 클릭재킹으로 실제 계정 탈취까지 이어진 사례를 현장에서 직접 봤다.

8종 헤더 — 출처·권장 값·서버별 설정

1. HSTS (Strict-Transport-Security)

출처: RFC 6797 / MDN

HTTP Archive Security 보고서에 따르면 2024년 기준 상위 100만 사이트 중 HSTS 설정 비율은 32.4%다.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

# Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

2. Content-Security-Policy (CSP)

출처: W3C CSP Level 3 / MDN

Mozilla Observatory 기준, 2024년에도 전체 사이트의 62%가 CSP를 미설정 상태로 운영 중이다.

# Nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'" always;

3. X-Frame-Options

출처: RFC 7034. HTTP Archive 기준 2024년 설정률은 약 27%다.

X-Frame-Options: DENY
# Nginx
add_header X-Frame-Options "DENY" always;

4. X-Content-Type-Options

출처: Fetch Living Standard. 2024년 설정률은 40% 수준이다.

X-Content-Type-Options: nosniff

5. Referrer-Policy

출처: W3C Referrer Policy

Referrer-Policy: strict-origin-when-cross-origin

6. Permissions-Policy

출처: W3C Permissions Policy

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()

7. Cross-Origin-Opener-Policy (COOP)

출처: MDN COOP

Cross-Origin-Opener-Policy: same-origin

8. Cross-Origin-Embedder-Policy (COEP)

출처: MDN COEP

Cross-Origin-Embedder-Policy: require-corp
"Security headers are one of the easiest wins in web security — low effort, high impact, yet consistently overlooked." — Scott Helme, securityheaders.com 창업자

헤더별 사용률 현황 (2024 기준)

  • X-Content-Type-Options: 약 40% 설정
  • X-Frame-Options: 약 27% 설정
  • HSTS: 약 32% 설정
  • Referrer-Policy: 약 15% 설정
  • CSP: 약 15% 설정
  • Permissions-Policy: 약 9% 설정
  • COOP: 약 4% 설정
  • COEP: 약 2% 설정

CSP 실전 트랩 — unsafe-inline 제거 절차

1단계 — Report-Only로 현황 파악

Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; report-uri /csp-report

2단계 — nonce 방식으로 교체

import secrets
nonce = secrets.token_hex(16)
response.headers['Content-Security-Policy'] = f"script-src 'self' 'nonce-{nonce}'"

설정 검증

curl -I https://yourdomain.com 2>/dev/null | grep -iE "strict-transport|content-security|x-frame|x-content-type|referrer-policy|permissions-policy|cross-origin"

자주 묻는 질문

HSTS preload 등록은 어떻게 하나요?

hstspreload.org에서 도메인을 제출한다. 등록 후 제거는 수개월이 걸리므로 서브도메인까지 HTTPS가 완전히 정비된 상태에서 신청해야 한다.

CSP를 설정했는데 콘솔에 에러가 쏟아집니다. 어떻게 디버깅하나요?

브라우저 개발자 도구 Console 탭에서 Content Security Policy 에러를 확인한다. Content-Security-Policy-Report-Only로 먼저 전환해서 실제 차단 없이 위반 목록을 수집한다.

Cloudflare를 쓰면 Nginx 설정 없이 헤더를 추가할 수 있나요?

그렇다. Cloudflare Dashboard → Rules → Transform Rules → Modify Response Header에서 추가할 수 있다.

X-Frame-Options DENY 설정 후 자사 iframe이 깨지면 어떻게 하나요?

같은 도메인 iframe이라면 SAMEORIGIN으로 변경한다. 다른 도메인에서 iframe 삽입이 필요한 경우에는 CSP frame-ancestors로 처리하는 게 맞다.

보안 헤더 설정 후 A등급 인증을 받고 싶은데 기준이 있나요?

securityheaders.com 기준으로 A등급은 HSTS·CSP·X-Frame-Options·X-Content-Type-Options·Referrer-Policy·Permissions-Policy 6종이 모두 설정돼 있어야 한다.

지금 바로 확인해보기

내 서비스에 8종 헤더가 제대로 설정돼 있는지 codescan.kr 무료 보안 진단에서 URL 하나로 자동 점검할 수 있다. 보안 전문 기업 SENTRIX가 실제 모의해킹에서 쓰는 점검 항목을 기반으로 만든 스캐너다.

HTTP 보안 헤더 CSP 설정 HSTS X-Frame-Options 보안 헤더 가이드 Permissions-Policy 웹 보안 RFC 6797 Content-Security-Policy

내 사이트도 점검해보세요

CodeScan으로 보안 취약점을 무료로 점검할 수 있습니다.

무료 스캔 시작하기 →
🛒
추천 상품
웹서비스 런칭 전 보안 세팅
런칭 전에 반드시 해야 하는 보안 설정을 원격으로 직접 해드립니다. HTTPS, 환경변수 분리, 보안 헤더…
220,000원 150,000원

🔒 바이브코딩 보안 체크리스트 받기

바이브코딩 보안 체크리스트(PDF)를 무료로 받아보세요.