📋Critical

HTTP 보안 헤더 6종 완전 정복

MyCompass 보안 가이드 · mycompass.kr/guide/http-security-headers

HTTP 보안 헤더는 서버가 브라우저에게 "이렇게 동작하라"고 지시하는 설정입니다. 설정하지 않으면 XSS, 클릭재킹, MIME 스니핑 등의 공격에 취약해집니다.

Content-Security-Policy (CSP)

Critical

어떤 출처(도메인)의 스크립트·스타일·이미지를 허용할지 명시. XSS 공격의 주요 방어선.

Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'

Next.js 설정: // next.config.js headers: async () => [{ source: '/(.*)', headers: [{ key: 'Content-Security-Policy', value: "default-src 'self'" }] }]

Strict-Transport-Security (HSTS)

Critical

브라우저가 이 사이트는 항상 HTTPS로만 접속하도록 강제. HTTP 다운그레이드 공격 방어.

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

Next.js 설정: { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' }

X-Frame-Options

High

내 사이트를 다른 사이트의 iframe에 넣지 못하도록 차단. 클릭재킹 공격 방어.

X-Frame-Options: DENY

Next.js 설정: { key: 'X-Frame-Options', value: 'DENY' }

X-Content-Type-Options

Medium

브라우저가 응답의 Content-Type을 임의로 변경하지 못하도록 차단. MIME 스니핑 방어.

X-Content-Type-Options: nosniff

Next.js 설정: { key: 'X-Content-Type-Options', value: 'nosniff' }

Referrer-Policy

Medium

다른 사이트로 이동 시 Referer 헤더에 URL 정보를 얼마나 포함할지 제어.

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

Next.js 설정: { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' }

Permissions-Policy

Medium

카메라, 마이크, 위치정보 등 브라우저 기능 접근 권한을 제한.

Permissions-Policy: camera=(), microphone=(), geolocation=()

Next.js 설정: { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' }

✨ AI 수정 프롬프트

next.config.js의 headers() 설정에 다음 보안 헤더를 모두 추가해줘: - Content-Security-Policy: default-src 'self' - Strict-Transport-Security: max-age=63072000; includeSubDomains; preload - X-Frame-Options: DENY - X-Content-Type-Options: nosniff - Referrer-Policy: strict-origin-when-cross-origin - Permissions-Policy: camera=(), microphone=(), geolocation=() 모든 경로('/(.*)')에 적용되도록 설정하고, 기존 headers() 함수가 있다면 통합해줘.

Claude / ChatGPT / Cursor에 바로 붙여넣기

내 사이트에 이 취약점이 있는지 확인하세요

무료 · 30초 · 회원가입 불필요

🧭 무료 점검 시작