AZ Tools

Content-Security-Policy 빌더

네트워크

디렉티브별 입력 폼으로 Content-Security-Policy 헤더 구성. 각 디렉티브는 공백 구분 소스 리스트('self'·'none'·'unsafe-inline' 같은 키워드, 스킴/호스트 소스) 받음. unsafe-inline·unsafe-eval·와일드카드 포함 정책 플래그, 빈 디렉티브 출력에서 제외, 응답 헤더 형식과 동등한 <meta> 태그 둘 다 생성. 새 정책 프로덕션 롤아웃 중엔 report-only 모드로 전환.

프리셋
디렉티브
헤더
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
<meta> 태그
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'">

빈 디렉티브는 default-src로 폴백. default-src 'self' 먼저 설정 후 개별 소스 좁히기.

사용법

  1. 프리셋에서 시작(Strict는 모두 'self', Relaxed는 인라인·와일드카드 허용, API only는 내비게이션 차단).
  2. 각 디렉티브 편집 — 비우면 제외.
  3. 새 정책 출시 시 report-only 켜기: 위반은 보고되지만 차단되지 않음.

자주 묻는 질문

헤더 vs <meta> — 뭐 써?
HTTP 헤더 우선. <meta>는 응답 헤더 편집 불가일 때(정적 호스트 등) 편리하지만 frame-ancestors·report-uri/report-to 정의 불가 → 항상 덜 강력.
와일드카드가 왜 경고?
소스 리스트의 *는 임의 URL 매치 → 정책 무력화. 특정 오리진에 핀하거나 'self' 사용 — 진짜 서드파티 스크립트 필요하면 명시적으로 나열.

관련 도구