MODOO HUB ← 모두의 툴
SECURITY

CSP 생성기

Content Security Policy 지시어 설정 → 헤더 값·서버 설정 즉시 생성

지시어 설정
헤더 값
HTML Meta 태그
Nginx 설정
Apache 설정

CSP(Content Security Policy)란?

CSP는 브라우저가 로드할 수 있는 리소스 출처를 제한하는 HTTP 응답 헤더입니다. XSS(크로스 사이트 스크립팅), 데이터 인젝션, 클릭재킹 등의 공격을 방어합니다. script-src에 허용된 출처 외의 스크립트는 실행이 차단됩니다.

자주 묻는 질문

'self'와 '*'의 차이는?

'self'는 현재 페이지와 동일한 오리진(프로토콜+도메인+포트)만 허용합니다. '*'는 모든 출처를 허용하므로 CSP의 보안 효과를 완전히 없앱니다. 가능한 한 구체적인 도메인을 명시하세요.

'unsafe-inline'과 'unsafe-eval'을 피해야 하는 이유는?

'unsafe-inline'은 인라인 스크립트/스타일을 허용해 XSS 공격이 가능해집니다. 'unsafe-eval'은 eval()과 유사한 함수를 허용합니다. 대신 nonce-{랜덤값} 또는 hash 기반으로 특정 인라인 코드만 허용하세요.

CSP를 Report-Only 모드로 테스트하는 방법은?

Content-Security-Policy-Report-Only 헤더를 사용하면 차단하지 않고 위반 사항만 보고합니다. report-uri 지시어로 보고 URL을 지정하고 차단 없이 테스트하세요.

Google Analytics와 CSP 충돌 해결법은?

script-src에 'https://www.googletagmanager.com', img-src에 'https://www.google-analytics.com'을 추가하세요. GTM을 사용한다면 nonce 기반 설정이 더 정확합니다.

default-src와 다른 지시어의 관계는?

default-src는 지정되지 않은 다른 지시어의 폴백 역할을 합니다. script-src를 명시하면 script에 대해서는 default-src를 무시합니다. 각 지시어를 개별적으로 세밀하게 설정하는 것이 좋습니다.

CSP 메타 태그와 HTTP 헤더의 차이는?

<meta http-equiv="Content-Security-Policy">는 HTML에 직접 포함할 수 있어 서버 설정 없이도 사용 가능합니다. 단, frame-ancestors, sandbox, report-uri 등 일부 지시어는 메타 태그에서 지원되지 않습니다.

nonce 기반 CSP란?

서버에서 요청마다 랜덤 nonce를 생성해 스크립트에 nonce="값"으로 추가하고 CSP에 'nonce-값'으로 허용합니다. 인라인 스크립트를 안전하게 허용하는 권장 방법입니다.

object-src 'none'이 권장되는 이유는?

Flash, Java 등 레거시 플러그인은 보안 취약점이 많습니다. object-src 'none'으로 플러그인을 완전히 차단하는 것이 현대 웹 보안 모범 사례입니다.