뒤의 중복 값을 override로 오해하기
정책 하나에서는 같은 이름의 첫 directive가 유효하고 뒤의 중복은 무시됩니다. 마지막 값처럼 보이는 문구를 믿지 말고 헤더 생성 경로를 수정해야 합니다.
Content-Security-Policy 필드 하나나 정책 값 하나를 붙여넣어 쉼표로 구분된 여러 정책, 정책별 첫 유효 directive, source expression, Report-Only 상태와 문맥별 점검 결과를 확인합니다. 분석은 브라우저에서만 실행되고 URL을 가져오지 않으며, nonce·hash·strict-dynamic 때문에 효력이 없는 unsafe-inline과 실제로 허용되는 경우를 구분합니다.
관련 작업 흐름을 이어가거나 이 작업 다음에 자주 사용하는 도구를 열어보세요.
CSP가 필요한 리소스를 차단하거나 후보 정책이 과도한 보고서를 만들거나 프록시가 의도한 헤더를 바꿀 때 사용하는 절차입니다. 로컬 정책 파싱, 브라우저 위반 증거, 마지막 배포 엣지 재확인을 결합하며 정적 결과를 보안 인증으로 취급하지 않습니다.
열기관련 도구UTF-8 텍스트나 파일 원본 바이트를 해시하고 전체 체크섬을 로컬에서 비교합니다.
열기관련 도구HTTP 헤더 블록을 로컬에서 분석하고 민감값 마스킹과 프로토콜 진단을 제공합니다.
열기관련 도구IDN 하나를 엄격하게 검증하며 유니코드와 퓨니코드 사이에서 변환합니다.
열기배포된 응답에서 Content-Security-Policy 또는 Content-Security-Policy-Report-Only 필드 하나를 정확히 복사합니다. 정책 값만 넣을 수도 있지만 이 경우 시행 여부는 알 수 없습니다.
쿠키, Authorization 값, 서명된 report URL과 관련 없는 헤더는 붙여넣기 전에 제거합니다. 응답 전체는 보안 헤더 확인기를 사용합니다.
분석을 실행하고 헤더 시행 상태, 정책 수, 인식된 directive, 알 수 없는 directive와 source expression 수를 확인합니다.
정책별 중복 directive를 검토합니다. 브라우저는 한 정책에서 같은 이름의 첫 directive를 사용하므로 뒤에 나온 값이 앞의 값을 덮지 않습니다.
시행 정책의 고위험 결과부터 해결한 뒤 Report-Only 경고, 레거시 directive, 다른 source와 섞인 'none', 잘못된 source와 fallback을 살펴봅니다.
정규화된 보고서를 복사하거나 다운로드하고 실제 페이지 동작과 위반 보고서를 시험한 뒤 CDN·프록시 변경 후 배포 헤더를 다시 확인합니다.
후보 정책을 시행하기 전에 복사한 필드가 리소스를 실제 차단하는지 위반만 보고하는지 구분합니다.
템플릿, 미들웨어, 리버스 프록시나 CDN이 같은 directive를 다시 붙였을 때 어떤 첫 값이 실제로 남는지 확인합니다.
nonce·hash·strict-dynamic 신뢰가 있을 때 최신 CSP 처리에서 무시되는 unsafe-inline과 실제 활성 값을 구분합니다.
차단된 스크립트, API 요청, 이미지, 프레임, 폼 제출을 연결하기 전에 fetch·document·navigation·reporting directive를 분류합니다.
제한된 정책을 안정적인 보고서로 정리해 PR, 장애 기록, 배포 체크리스트와 변경 전후 비교에 사용합니다.
정책 하나에서는 같은 이름의 첫 directive가 유효하고 뒤의 중복은 무시됩니다. 마지막 값처럼 보이는 문구를 믿지 말고 헤더 생성 경로를 수정해야 합니다.
유효한 source list의 nonce, hash 또는 strict-dynamic은 최신 CSP 처리에서 unsafe-inline을 무효화할 수 있습니다. 토큰 개수만 세지 말고 호환성 문맥을 봐야 합니다.
Content-Security-Policy-Report-Only는 위반을 기록하지만 차단을 시행하지 않습니다. 같은 source라도 운영상 결과가 다릅니다.
쉼표로 구분되거나 반복된 시행 정책은 함께 적용됩니다. 요청은 모든 시행 정책을 통과해야 하므로 뒤의 정책이 앞 정책을 느슨하게 만들 수 없습니다.
정적 검토는 런타임 nonce·hash, redirect, 삽입 markup, worker, 브라우저 지원과 모든 경로 의존성을 알 수 없습니다. 배포된 앱과 위반 보고를 시험해야 합니다.
예시 nonce를 운영 환경에 복사하지 말고 응답마다 새 값을 생성해야 합니다. 분석기는 토큰을 읽을 뿐 nonce 생성이나 markup 일치를 검증하지 못합니다.
Content-Security-Policy: default-src 'self'; script-src 'nonce-AbCd12_-' 'strict-dynamic'; style-src 'self'; img-src 'self' https: data:; connect-src 'self' https://api.example.com; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; report-to csp-endpoint인식된 fetch·document·navigation·reporting directive가 있는 시행 정책입니다. img-src의 data:는 정보로 표시되고 활성 고위험 script source는 보고되지 않습니다.후보 위반을 관찰하는 데는 유용하지만 이 필드는 표시된 inline 동작을 실제로 차단하지 않습니다.
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'unsafe-inline' https://cdn.example.com; report-uri https://reports.example.com/cspReport-Only 상태, 후보 unsafe-inline 경고, 폐기 예정 report-uri 호환성 안내가 표시되며 시행 고위험 개수에는 포함되지 않습니다.한 정책 안의 중복과 다른 정책에 같은 directive가 있는 경우는 다릅니다. 다른 정책의 값은 추가 제한으로 적용됩니다.
Content-Security-Policy: default-src 'self'; script-src 'self'; script-src *, connect-src 'none'함께 적용되는 시행 정책 두 개입니다. 정책 1은 첫 script-src 'self'를 사용하고 뒤의 wildcard 중복을 무시하며, 정책 2는 별도로 연결을 차단합니다.파서는 CSP Level 3의 직렬화 구조를 따릅니다. 쉼표는 정책, 세미콜론은 directive를 구분하고 이름은 ASCII 대소문자를 구분하지 않으며 빈 세미콜론 구간은 무시합니다.
각 정책에서는 같은 이름의 첫 directive만 유지하고 뒤의 항목을 무시된 중복으로 보고합니다. 다른 정책의 같은 directive는 정책이 누적 적용되므로 중복이 아닙니다.
형식이 맞지만 알 수 없는 directive 이름은 조용히 삭제하지 않고 표시합니다. 오타를 찾되 확장 또는 새 사양이 모든 브라우저에서 미지원이라고 단정하지 않기 위한 처리입니다.
source 검사는 directive 문맥을 반영합니다. wildcard, data:, blob:, 일반 HTTP, unsafe-eval과 unsafe-inline은 script·image·worker·object·fallback에서 같은 위험도로 계산되지 않습니다.
관련 inline 검사에서는 nonce나 hash가 있으면 unsafe-inline이 효력을 잃고, strict-dynamic도 최신 script 처리 방식을 바꿉니다. 구형 브라우저의 fallback 해석이 가능한 경우에는 호환성 경고를 남깁니다.
입력은 UTF-8 바이트, 줄 수와 줄 크기, 정책·directive·source 수로 제한됩니다. 도구는 붙여넣은 텍스트를 로컬에서 분석할 뿐 URL을 가져오거나 정책을 실행·시행·인증하지 않습니다.
아니요. 붙여넣은 필드 하나를 파싱하고 검토합니다. 모든 브라우저 버전, 런타임 nonce, 삽입 요소, 경로 의존성, 서버 동작이나 앱 취약점을 모델링하지 못합니다.
같은 유효 source list에 nonce나 hash가 있으면 CSP inline 매칭은 모든 inline 동작을 허용하지 않습니다. script에서는 strict-dynamic도 최신 처리에서 unsafe-inline을 무효화할 수 있습니다.
한 정책 안에서는 같은 이름의 첫 directive가 사용되고 뒤의 중복은 무시됩니다. 별도 정책에 있는 directive는 누적되는 별도 제한으로 계속 적용됩니다.
필드 이름이 없으면 Content-Security-Policy인지 Content-Security-Policy-Report-Only인지 구분할 수 없습니다. 차단 여부가 중요하면 전체 필드를 붙여넣으세요.
요청·응답 전체는 보안 헤더 확인기나 HTTP 헤더 파서를 사용하세요. 이 도구는 CSP 필드 하나 또는 직렬화된 정책 목록 값 하나만 분석합니다.
아닙니다. default-src는 fetch fallback이지 모든 정책의 필수 조건은 아닙니다. 앱이 쓰는 리소스 종류를 명시적 directive가 모두 다루는지 확인할 수 있도록 부재를 문맥 정보로 표시합니다.
분석과 보고서 생성은 브라우저에서 이루어집니다. 그래도 서명된 report endpoint, 내부 hostname과 공유할 필요가 없는 비밀값은 붙여넣거나 내보내기 전에 제거하세요.
관리 및 검수 SimpleWebUtils검토일
검증 방법: “image data:를 script 위험으로 오해하지 않고 nonce 정책 검토” 문서 입력을 CSP 헤더 분석기에 그대로 넣었습니다. 수행 순서는 “공유 전 캡처 최소화”, “유효 문맥에서 source 해석”였고 브라우저 결과를 예시 출력과 대조했습니다. 실패 경계는 “엣지가 아닌 origin 응답 검토”, “무시되는 중복 편집” 두 항목으로 나눠 검토했습니다.
기대 결과: 파서는 nonce와 'strict-dynamic'의 관계를 유지했고 고위험 항목은 0건으로 판정했으며, img-src data:는 스크립트 위험이 아니라 이미지 동작에 따라 정당화할 검토 항목으로 표시했습니다.
공식 출처와 표준
도구를 열기 전에 자주 쓰는 작업 흐름과 예시를 확인하세요.
CSP가 필요한 리소스를 차단하거나 후보 정책이 과도한 보고서를 만들거나 프록시가 의도한 헤더를 바꿀 때 사용하는 절차입니다. 로컬 정책 파싱, 브라우저 위반 증거, 마지막 배포 엣지 재확인을 결합하며 정적 결과를 보안 인증으로 취급하지 않습니다.
작업 가이드curl -I 또는 DevTools 캡처를 반복 가능한 출시 증거로 바꾸는 절차입니다. 마지막 응답을 로컬에서 검사하고 시행 CSP와 Report-Only 관찰을 구분하며, 배포 문맥을 기록한 뒤 헤더만으로 확인할 수 없는 애플리케이션 테스트까지 이어갑니다.
관리 중인 다른 작업 흐름을 이어서 사용해 보세요
UTF-8 텍스트나 파일 원본 바이트를 해시하고 전체 체크섬을 로컬에서 비교합니다.
HTTP 헤더 블록을 로컬에서 분석하고 민감값 마스킹과 프로토콜 진단을 제공합니다.
IDN 하나를 엄격하게 검증하며 유니코드와 퓨니코드 사이에서 변환합니다.
붙여넣은 마지막 HTTP 응답에서 시행 여부와 문맥을 반영한 보안 헤더 신호를 검토합니다.
절대 URL 또는 상대 참조를 파싱해 raw, decoded, 정규화, 중복 query 보기를 제공합니다.