보안 도구/CSP 빌더
CSP 빌더
시각적으로 Content-Security-Policy 헤더 생성
프리셋
디렉티브
Default fallback for other directives
Controls allowed JavaScript sources
Controls allowed CSS sources
Controls allowed image sources
Controls allowed font sources
Controls allowed fetch/XHR/WebSocket targets
Controls allowed iframe sources
Controls allowed plugin sources (Flash, etc.)
Restricts URLs for <base> element
Restricts form submission targets
Controls who can embed this page
Upgrade HTTP to HTTPS automatically
옵션
활성화하면 위반 사항이 보고되지만 차단되지 않습니다. 테스트에 유용합니다.
생성된 CSP 헤더
Content-Security-Policy: default-src 'self'구현 예제
add_header Content-Security-Policy "default-src 'self'";
Header set Content-Security-Policy "default-src 'self'"
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
CSP 빌더 가이드
웹사이트를 보호하기 위한 Content-Security-Policy 헤더를 만드는 방법을 알아보세요
Content-Security-Policy란?
Content-Security-Policy(CSP)는 크로스 사이트 스크립팅(XSS), 클릭재킹 및 기타 코드 삽입 공격을 방지하는 HTTP 응답 헤더입니다. 웹사이트에서 로드할 수 있는 콘텐츠 소스를 지정하여 스크립트, 스타일, 이미지 및 기타 리소스를 세밀하게 제어할 수 있습니다.
사용 방법
- 시작점으로 프리셋(엄격, 보통, 완화) 선택
- 필요에 따라 개별 디렉티브 활성화 및 구성
- 보안 경고를 검토하고 설정을 조정
- 생성된 헤더를 복사하여 웹 서버 설정에 추가
모범 사례
자주 묻는 질문
CSP를 너무 엄격하게 설정하면 어떻게 되나요?
CSP가 너무 엄격하면 정상적인 리소스가 차단되어 웹사이트 기능이 손상될 수 있습니다. 그래서 리포트 전용 모드로 시작하는 것이 좋습니다. 이 모드에서는 위반 사항이 서버에 보고되지만(report-uri를 구성한 경우) 실제로 차단되지 않아 정책 시행 전에 문제를 식별할 수 있습니다.
'self'와 'none'의 차이점은 무엇인가요?
'self'는 웹사이트와 동일한 출처(동일한 프로토콜, 호스트, 포트)에서만 콘텐츠를 허용합니다. 'none'은 해당 유형의 모든 콘텐츠를 차단합니다. 예를 들어, object-src 'none'은 모든 플러그인(Flash, Java 등)의 로딩을 방지하며, 이는 보안 모범 사례입니다.
'unsafe-inline'이 위험한 이유는 무엇인가요?
'unsafe-inline'은 인라인 스크립트와 스타일을 허용하여 CSP의 XSS 보호 기능을 크게 약화시킵니다. HTML을 삽입할 수 있는 공격자는 인라인 스크립트도 삽입할 수 있습니다. 대신 nonce(script-src 'nonce-random123') 또는 해시(script-src 'sha256-...')를 사용하여 특정 인라인 스크립트만 허용하고 삽입된 스크립트는 차단하세요.
Google Analytics나 다른 서드파티 스크립트를 허용하려면 어떻게 하나요?
script-src 디렉티브에 특정 도메인을 추가하세요. Google Analytics의 경우: script-src 'self' https://www.googletagmanager.com https://www.google-analytics.com이 필요할 수 있습니다. API 호출을 위해 connect-src에도, 추적 픽셀을 위해 img-src에도 해당 도메인을 추가하세요.
CSP가 다른 보안 헤더를 대체할 수 있나요?
아니요, CSP는 다른 보안 헤더를 보완합니다. 함께 사용해야 할 헤더: X-Content-Type-Options: nosniff, X-Frame-Options(CSP의 frame-ancestors로 대체 가능), X-XSS-Protection, Strict-Transport-Security(HSTS), Referrer-Policy. 각 헤더는 서로 다른 보안 문제를 해결합니다.