보안 헤더 검사

페이지의 응답 헤더를 붙여넣으세요 —curl -sI https://your-site.example/터미널에서, 또는 브라우저 네트워크 패널의 블록 — 그러면A+부터 F까지 등급OWASP 보안 헤더 체크리스트 기준:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, 프레이밍 보호,Referrer-Policy, Permissions-Policy, 교차 출처 격리 삼총사, 버전 노출, 폐기된 헤더와 쿠키 플래그 — 각 판정에는 정확한nginx, Apache, Express수정 줄이 짝지어집니다. 모든 것이 브라우저에서 실행되며 페이지는 대상 사이트에 절대 접촉하지 않습니다.
상태 줄은 선택입니다. 여러 Set-Cookie 줄이 모두 검사됩니다. 등급 매길 정책 자체를 만들려면 CSP 생성기에서, 헤더 블록을 줄별로 뜯어 보려면 HTTP 헤더 파서를 쓰세요.
아직 등급이 없습니다. 응답 헤더를 붙여넣고 헤더 검사를 누르거나 샘플을 불러오세요.
검사 후 모든 판정의 수정 줄이 여기에 나타납니다.
이 검사기와 SSL 보안 검사의 범위. 이 페이지는 보안 응답 헤더(위의 OWASP 목록)를 등급 매깁니다. SSL 보안 검사는 당신의 HTTPS 구성을 등급 매깁니다. 인증서 체인, 프로토콜 버전, 암호 강도, 혼합 콘텐츠. HSTS와 쿠키 플래그는 두 목록 모두에 포함되어 양쪽 페이지에 나타나지만 렌즈가 다릅니다 - 전체 그림을 위해 두 검사를 모두 실행하세요.
셀프테스트
고정된 헤더 블록에 대해 채점기를 다시 실행합니다. A+의 좋은 샘플, 모든 감점이 발동된 F의 나쁜 샘플, 격리된 각 규칙(점수의 산술), 버전 노출 상한, 쿠키 권고, CSP 품질 참고, 프레이밍 보호로 세어지는 frame-ancestors, 모든 경계 양쪽의 등급 임계값, 수정 조각, 그리고 부정 경로. 아무것도 전송되지 않습니다.
보안 헤더란 무엇인가?
한 문장으로: 보안 헤더는 브라우저가 스스로 알아내지 못하는 보호를 강제하도록 지시하는 응답 헤더입니다 — 알려지지 않은 출처의 스크립트를 절대 로드하지 않기, 이 호스트에는 다시는 평문 HTTP를 말하지 않기, 이 페이지를 절대 프레임하지 않기 — 그리고 각각이 구성 줄 하나의 비용입니다.
이 페이지가 등급 매기는 헤더
헤더방어 대상OWASP 권장 값
Strict-Transport-Security첫 평문 HTTP 요청에서의 프로토콜 강등과 쿠키 탈취max-age=63072000; includeSubDomains
Content-Security-Policy교차 사이트 스크립팅, 악의적 삽입, 혼합 콘텐츠default-src 'self'; form-action 'self'; base-uri 'self'
X-Content-Type-OptionsMIME 혼동(이미지로 서빙된 스크립트)nosniff
X-Frame-Options / CSP frame-ancestors클릭재킹(공격자가 사이트 페이지를 프레임)deny / 'none'
Referrer-Policy토큰을 포함한 URL이 제3자 사이트로 새는 것no-referrer
Permissions-Policy카메라·마이크·위치를 조용히 쓰는 페이지와 삽입물모든 기능 비활성화
Cross-Origin-Opener-Policy다른 창이 당신의 브라우징 컨텍스트에 손을 뻗는 것same-origin
Cross-Origin-Embedder-Policy동의하지 않은 리소스 로딩(프로세스 격리를 가능하게 함)require-corp
Cross-Origin-Resource-Policy다른 사이트에 삽입되는 사이트 리소스same-origin
등급은 어떻게 계산되나

100에서 시작해 빼기: CSP 누락 −25, HSTS 누락 −20, X-Content-Type-Options·Referrer-Policy 또는 프레이밍 보호 누락 각 −10, 교차 출처 삼총사와 Permissions-Policy 각 −5, Server/X-Powered-By의 버전 노출 −5(상한), 0이 아닌 X-XSS-Protection −5. 문자 등급: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, 미만 = F. 권고 참고(쿠키 플래그, 캐시 제어, CSP 품질)는 감점하지 않습니다.

흔한 실수
  • 잘못된 응답에 헤더를 설정했습니다. 오류 페이지와 리다이렉트를 포함한 모든 응답에 추가해야 합니다 — nginx의 add_header ... always;와 Apache의 Header always set에 있는 always가 바로 그 역할을 합니다.
  • 홈페이지만 테스트. 프록시, 캐시, 구형 앱은 특정 경로에서만 헤더를 지우거나 덮어쓰는 경우가 많습니다. 실제로 중요한 페이지를 확인하세요: 로그인, 결제, API 엔드포인트.
  • X-XSS-Protection을 그대로 두었습니다. 그것이 구동하던 필터 자체가 취약점을 일으켜 각 브라우저는 이미 제거했습니다. 이제 0이 아닌 값은 의도적으로 감점 대상입니다 — 삭제하고 CSP가 하도록 두세요.
  • X-Frame-Options가 아직 최신이라고 생각했습니다. 특정 출처를 허용할 수 없고 CSP 표준에도 없습니다; frame-ancestors가 현대적인 대체재입니다. 과도기에는 둘 다 두어도 문제없습니다 — 이 페이지는 둘 다 인정합니다.
  • 버전 배너를 내보냈습니다. Server: Apache/2.4.58 (Unix)는 공격자가 알려진 취약점을 찾는 범위를 좁혀 줄 뿐 여러분에게는 아무 이득이 없습니다. 버전 번호를 제거하고, 겸사겸사 응답 헤더 줄 수도 줄이세요.
FAQ

COOP/COEP/CORP가 왜 각 5점뿐인가? 삼총사는 가장 새 계층으로, 주로 프로세스 격리(SharedArrayBuffer, Spectre 경화)를 원하는 곳에 필요합니다. 없어도 사이트의 핵심 보호는 유지되고, 있으면 일부 교차 출처 삽입이 조정을 필요로 합니다 — 그래서 CSP나 HSTS보다 무게가 낮습니다.

높은 등급이 사이트가 안전하다는 뜻인가? 아닙니다 — 응답 헤더가 설정되었다는 뜻입니다. 보안 헤더는 한 계층입니다. TLS 구성, 세션 처리, 입력 검증, 패칭이 여전히 사이트의 실제 안전을 결정합니다. TLS 계층에는 SSL 보안 검사를 실행하세요.

Permissions-Policy 값이 왜 그렇게 긴가? OWASP 기준은 모든 기능을 명시적으로 끄므로, 브라우저가 새 기능을 추가해도 조용히 다시 켜지지 않습니다. camera=(), microphone=(), geolocation=() 같은 짧은 값은 시작일 뿐 — 무엇을 켜 두는지 알아 두세요.

여기서 아무 사이트의 헤더나 검사할 수 있나요? 이 페이지는 네트워크 요청을 절대 하지 않습니다 — 붙여넣은 텍스트를 정확히 등급 매길 뿐이므로 방화벽 뒤와 내부 호스트에서 작동하고, 검사한 것이 기기를 떠나지 않습니다. 헤더를 가져오는 것은 터미널의 curl -sI 한 번입니다.

Clear-Site-Data와 X-Permitted-Cross-Domain-Policies는 어떤가? 좁은 시나리오(로그아웃 응답, 구형 PDF/Flash 뷰어)에서 유용합니다. 여기서는 권고일 뿐 채점되지 않습니다 — 모든 응답에 Clear-Site-Data를 보내면 페이지를 로드할 때마다 사용자의 저장소가 지워집니다.