Content Security Policy
CSP(Content Security Policy, 콘텐츠 보안 정책)는 웹 브라우저에서 실행되는 자원의 출처를 제어하여 XSS(교차 사이트 스크립팅), 클릭재킹, 데이터 주입 등의 공격을 탐지하고 차단하기 위해 추가된 웹 보안 계층이다.
웹 관리자는 HTTP 응답 헤더(Content-Security-Policy) 또는 HTML <meta> 태그를 사용하여 브라우저가 신뢰할 수 있는 리소스(스크립트, 스타일시트, 이미지 등)의 출처를 명시적으로 정의한다. 브라우저는 이 정책에 기반하여 승인되지 않은 외부 도메인의 스크립트 실행이나 리소스 로드를 차단한다.
웹 보안을 다룰 때 자주 언급되는 기본 보안 정책인 SOP(Same-Origin Policy)와 CSP의 차이는 다음과 같다.
| 특징 | CSP (Content Security Policy) | SOP (Same-Origin Policy) |
|---|---|---|
| 목적 | XSS 및 인젝션 공격 등 악의적 코드 실행 완화 | 다른 출처의 스크립트가 민감한 데이터에 접근하는 것 방지 |
| 작동 방식 | 리소스 로드 및 코드 실행이 허용되는 도메인 목록을 명시 | 기본적으로 교차 출처(Cross-Origin) 간의 데이터 접근을 차단 |
| 제어 주체 | 웹 서버 (HTTP 헤더 등을 통해 브라우저에 지시) | 웹 브라우저 (기본 내장된 정책) |
| 유연성 및 예외 | 디렉티브(script-src, img-src 등)를 통해 세밀한 제어 가능 | CORS(Cross-Origin Resource Sharing)를 사용하여 예외를 허용 |
출처 (Sources):
- Mozilla Developer Network (MDN Web Docs), “Content Security Policy (CSP)”. Available at: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
- OWASP Foundation, “Content Security Policy Cheat Sheet”. Available at: https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html