Content-Security-Policy(이하: CSP)는 최신 브라우저에서 문서(또는 웹페이지)의 보안을 강화하기 위해 사용하는 HTTP 응답 헤더(response header)의 이름이다. CSP 헤더(header)를 사용하면 로드할 수 있는 리소스와 해당 리소스를 로드할 수 있는 URL을 제한할 수 있다.
HTTP 응답 헤더(response header)에서 지정할 수 있고 HTML <meta>
요소에서도 지정이 가능하다.
child-src
<frame>
및 <iframe>
과 같은 요소를 사용하여 로드된 웹 워커(web worker) 및 중첩된 브라우징 컨텍스트(context)에 대한 유효한 소스를 정의한다.content-src
default-src
font-src
@font-face
를 사용하여 로드된 글꼴의 유효한 소스를 지정한다.frame-src
<frame>
및 <iframe>
과 같은 요소를 사용하여 로드되는 중첩 브라우징 컨텍스트(context)에 대한 유효한 리소스를 지정한다.img-src
manifest-src
media-src
<audio>
, <video>
, <track>
요소를 사용하여 미디어를 로드하기 위한 유효한 소스를 지정한다.object-src
<object>
, <embed>
요소에 대한 유효한 소스를 지정한다.srcript-src
script-src-elem
<script>
요소의 유효한 소스를 지정한다.script-src-attr
style-src
style-src-elem
<style>
요소 및 <link rel="stylesheet">
요소에 대한 유효한 소스를 지정한다.style-src-attr
worker-src
Worker
, SharedWorker
, ServiceWorker
스크립트의 유효한 소스를 지정한다.base-uri
sandbox
<iframe>
의 sandbox
애트리뷰트와 유사한 요청된 리소스에 대해 샌드박스를 활성화한다.form-action
frame-ancestors
<frame>
, <iframe>
, <object>
또는 <embed>
요소를 사용하여 페이지를 포함할 수 있는 유효한 부모를 지정한다.navigate-to
<form>
(action
이 지정되지 않은 경우), <a>
, window.location
, window.open()
등을 포함하여 모든 방법으로 탐색을 시작할 수 있는 URL을 제한한다.Source Value | Example | Description |
---|---|---|
* | img-src * | data: blob: filesystem: 스킴(schemes)를 제외한 모든 URL을 허용한다. |
'none' | object-src 'none' | 지정된 소스 또는 모든 소스에서 리소스 로드를 차단한다. |
'self' | script-src 'self' | 동일한 출처(동일한 체계, 호스트(host) 및 포트(port))에서 리소스를 로드할 수 있다. |
data: | img-src 'self' data: | 데이터 구성표를 통해 리소스를 로드할 수 있다.(예: base64 인코딩 이미지) |
domain.example.com | img-src domain.example.com | 지정된 도메인 이름에서 리소스를 로드할 수 있다. |
*.example.com | img-src *.example.com | 지정된 도메인의 모든 하위 도메인에서 리소스를 로드할 수 있다. |
https://example.com | img-src https://example.com | 지정된 도메인과 일치하는 HTTPS를 통해서만 리소스를 로드할 수 있다. |