기술 가이드

누락된 HTTP 보안 헤더 구성 및 점검 가이드

필수 보안 응답 헤더가 누락되면 웹 애플리케이션이 크로스 사이트 스크립팅(XSS), 클릭재킹, 프로토콜 다운그레이드 및 세션 탈취 공격에 무방비로 노출됩니다.

핵심 요약

1년 유효기간과 프리로드가 포함된 HSTS를 활성화하고 엄격한 CSP를 설정하며, X-Content-Type-Options: nosniff 및 frame-ancestors 'none'을 구성하세요.

누락된 HTTP 응답 헤더 진단 및 현황 파악

서버 구성을 변경하기 전에 curl -IL 명령어나 자동화된 보안 진단 도구를 통해 현재 전달되는 헤더를 확인하세요. TLS 종료 및 헤더 주입이 오리진 서버(Nginx, Apache), 리버스 프록시, 또는 CDN 엣지 중 어디에서 처리되는지 정확히 파악해야 게이트웨이 간 헤더 누락을 방지할 수 있습니다. 불필요한 서버 소프트웨어 정보 노출 여부도 함께 점검하십시오.

Strict-Transport-Security (HSTS)의 안전한 단계별 적용

HSTS는 브라우저가 오직 암호화된 HTTPS 연결을 통해서만 통신하도록 강제하여 중간자(MitM) 공격을 무력화합니다. 초기 적용 시 max-age=86400(1일)으로 시작하여 모든 서브도메인과 정적 자산이 HTTPS에서 정상 동작하는지 검증한 후, 프로덕션 환경에 max-age=31536000; includeSubDomains; preload를 설정하세요. 중간 프록시 캐시가 HTTP로 요청을 우회하지 않도록 철저히 통제해야 합니다.

강력하고 안전한 Content Security Policy (CSP) 설계

CSP는 브라우저에서 실행 가능한 스크립트 리소스의 출처를 엄격하게 제한합니다. 먼저 Content-Security-Policy-Report-Only 헤더를 사용하여 서비스 장애 없이 정책 위반 로그를 수집하세요. default-src 'self'로 시작하고, 'unsafe-inline' 대신 난수(nonce)나 SHA-256 해시를 적용하며 object-src 'none'으로 플러그인을 차단하세요. 신뢰할 수 없는 외부 cdn 의존성을 최소화하십시오.

클릭재킹 방지, MIME 스니핑 차단 및 리퍼러 보호

악의적인 사이트가 보이지 않는 iframe 내에 귀하의 웹페이지를 삽입하는 것을 막기 위해 CSP의 frame-ancestors 'none'과 구형 브라우저 호환용 X-Frame-Options: DENY를 지정하세요. 브라우저의 위험한 MIME 추측을 막는 X-Content-Type-Options: nosniff와 외부 링크 시 데이터 유출을 막는 Referrer-Policy를 적용하세요. 이를 통해 사용자의 민감한 세션 정보를 빈틈없이 보호할 수 있습니다.

웹 서버 레벨 배포 및 문법 검증

Nginx에서는 HTTPS 서버 블록 내에 add_header 지시문과 always 파라미터를 사용하여 4xx 및 5xx 오류 응답 시에도 보안 헤더가 누락되지 않도록 선언하세요. Apache의 경우 Header always set 지시문을 사용합니다. 설정 후 반드시 nginx -t로 문법을 검증하고 서비스를 안전하게 다시 로드하세요. 배포 후 외부 스캐너로 실제 헤더 응답을 재확인해야 합니다.

보안 응답 헤더: HTTPS, CSP, 클릭재킹 방지, MIME 스니핑 차단 및 브라우저 격리 제어.

무료 진단 시작 →

자주 묻는 질문

자주 묻는 질문

HSTS 프리로드를 메인 도메인에 즉시 활성화해도 안전한가요?

아닙니다. 먼저 max-age=86400으로 설정하여 모든 서브도메인과 내부 API가 HTTPS로 정상 통신하는지 철저히 확인한 후에 hstspreload.org에 등록해야 서비스 장애를 방지할 수 있습니다.

서드파티 스크립트 중단 없이 CSP를 안전하게 도입하는 방법은 무엇인가요?

Content-Security-Policy-Report-Only 헤더를 먼저 적용하여 위반 보고서를 모니터링하고, 허용할 외부 도메인을 선별한 뒤 암호화된 난수(nonce)를 부여하여 차단 모드로 전환하세요.