content-security-policy
요청 헤더
Content-Security-Policy: default-src 'self' <https://example.dreamhack.io>
meta 태그로 작성
<meta http-equiv="Content-Security-Policy" content="default-src 'self' <https://example.dreamhack.io>">
<script>
태그 내에 코드를 삽입하는 것을 포함하여 on*
이벤트 핸들러 속성, javascript:
URL 스킴 또한 인라인 코드로 간주하고 허용하지 않습니다. CSS
스타일시트 또한 인라인 코드를 허용하지 않습니다eval
, new Function()
, setTimeout(, ...)
, setInterval(, ...)
지시문 | 설명 |
---|---|
default-src | -src 로 끝나는 모든 지시문의 기본 동작을 제어합니다. 만약 CSP 구문 내에서 지정하지 않은 지시문이 존재한다면 default-src 의 정의를 따라갑니다. |
img-src | 이미지를 로드할 수 있는 출처를 제어합니다. |
script-src | 스크립트 태그 관련 권한과 출처를 제어합니다. |
style-src | 스타일시트 관련 권한과 출처를 제어합니다. |
child-src | 페이지 내에 삽입된 프레임 컨텐츠에 대한 출처를 제어합니다. |
base-uri | 페이지의 <base> 태그에 나타날 수 있는 URL을 제어합니다. |
출처 | 설명 |
---|---|
*://example.com | 출처의 scheme은 와일드카드를 이용해 표현할 수 있습니다. |
https://*.example.com | 출처의 호스트 서브도메인은 와일드카드를 이용해 표현할 수 있습니다. (단, 와일드카드는 호스트의 중간에 들어갈 수 없습니다. i.e) https://www.*.com , https://*.example.* |
또한 서브도메인을 와일드카드로 표현할 시, 서브도메인이 붙어있지 않는 도메인은 포함되지 않습니다. i.e) https://*.example.com 으로 출처를 표기할 경우, https://example.com 은 포함 안됨 |
|
https://example.com:* | 출처의 포트는 와일드카드를 이용해 표현할 수 있습니다. |
none | 모든 출처를 허용하지 않습니다. |
self | 페이지의 현재 출처 (Same Origin) 내에서 로드하는 리소스만 허용합니다. |
unsafe-inline | 예외적으로 인라인 코드의 사용을 허용합니다. |
unsafe-eval | 예외적으로 eval 과 같은 텍스트-자바스크립트 변환 메커니즘의 사용을 허용합니다. |
nonce-<base64-value> | nonce 속성을 설정하여 예외적으로 인라인 코드를 사용합니다. <base64-value> 는 반드시 요청마다 다른 난수 값으로 설정해야 합니다. 해당 출처를 설정하면 unsafe-inline 은 무시됩니다. |
<hash-algorithm>-<base64-value> | script 혹은 style 태그 내 코드의 해시를 표현합니다. 해당 출처를 설정하면 unsafe-inline 은 무시됩니다. |
Content-Security-Policy: default-src 'self'
모든 리소스의 출처를 현재 페이지와 같은 출처로 제한합니다.