Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

탐구개발

Content-Security-Policy 헤더값 본문

HTTP

Content-Security-Policy 헤더값

탐구개발자 2023. 11. 8. 14:20

웹 페이지의 보안을 강화하기 위해 사용되는 HTTP 응답 헤더.

웹 애플리케이션에서 실행되는 스크립트, 스타일, 이미지, 폰트 등의 리소스의 소스를 명시적으로 지정하여

악의적인 스크립트 삽입(예: XSS 공격)과 같은 보안 취약점을 예방

 

MDN 문서

 

Content-Security-Policy - HTTP | MDN

The HTTP Content-Security-Policy response header allows website administrators to control resources the user agent is allowed to load for a given page. With a few exceptions, policies mostly involve specifying server origins and script endpoints. This help

developer.mozilla.org

예시

Content-Security-Policy: 
        default-src https: 'unsafe-eval' 'unsafe-inline'; 
        object-src 'none'

 

 

디렉티브 - 리소스 액세스 권한을 설정

지시문
제한 대상
base-uri
문서 내에서 상대 URL을 해석하는 기준이 되는 URL
form-action
폼의 데이터를 전송할 수 있는 대상 URL을 지정
child-src
Web Worker, <frame>, <iframe>으로 이용할 수 있는 URL
frame-src
<frame>, <iframe>, <object> 등의 프레임 리소스의 원본을 지정
connect-src
AJAX, WebSockets 등의 연결 관련 자바스크립트로 연결할 리소스의 원본을 지정
font-src
폰트 리소스의 원본을 지정
img-src
이미지 리소스의 원본을 지정
mainfest-src
매니페스트를 로드할 원본을 지정
media-src
비디오나 오디오 등 미디어 리소스의 원본을 지정
<audio>와 <video>를 제공하는 출처
object-src
<object>, <embed>, <applet> 등 오브젝트 리소스의 원본을 지정
플래시나 자바 애플릿 등 기타 플러그인에 대한 제어
script-src
자바스크립트 파일의 원본을 지정
style-src
CSS 스타일 시트 파일의 원본을 지정

 

설정가능한 데이터 속성

데이터 속성
설명
none
로드금지
self
같은 출처를 지정
unsafe-inline
인라인 스크립트와 스타일을 허용
<script>, <style>를 허용하기 때문에 XSS 위험있음
unsafe-eval
문자열로 표현된 자바스크립트 코드를 실행할 수 있는 eval(), new Function(), setTimeout() 등의 실행 허용. XSS 위험있음
data:
data:URI 허가
mediastream:
mediastream:URI허가
blob:
blob:URI 허가
filesystem:
filesystem:URI 허가

 

 

디렉티브 - 리소스 엑세스 권한 일괄설정

지시문
제한 대상
default-src
기본 리소스 소스를 지정합니다. 다른 디렉티브들에 의해 재정의되지 않은 리소스에 적용
sandbox
웹 페이지를 샌드박스 환경에서 실행하도록 지정
팝업, 폼 등의 허용 설정, HTML의 <iframe>의 sandbox 속성과 같은 것을 지정
upgrade-insecure-requests
HTTP 통신을 모두 HTTPS로 변경

 

디렉티브 - 리소스 액세스 권한 이외

지시문
제한 대상
report-uri
혹은 report-to
보안 위반 사항이 발생했을 때 보고할 보고 엔드포인트 URL을 지정
referrer
리퍼러의 동작 변경
Deprecated됨
인수로 no-referrer, none-when-downgrade,
origin, origin-when-cross-origin/origin-when-crossorigin, unsafe-url 지정가능
reflected-xss
반사형 크로스 사이트 스크립팅으로 불리는 공격에 대한 필터 활성화
X-XSS-Protection 헤더와 동일한 기능
reflected-xss가 지원되지 않는 브라우저가 있기 때문에 X-XSS-Protection 헤더 사용 권장
인수로 allow, block, filter 지정가능

 

Content-Security-Policy-Report-Only

 

content-security-policy 헤더는 XSS 대책의 강력한 수단이 되는 기능이지만, 너무 강력해 정상적인 웹사이트의 동작을 방해할 수 있습니다. content-security-policy-report-only 헤더를 사용하면 검사는 하지만 동작은 멈추지 않게 됩니다.

'HTTP' 카테고리의 다른 글

CORS (교차 출처 리소스 공유)  (0) 2023.11.08
HTTPS(TLS) 통신 과정  (1) 2023.11.08
Referer 헤더값  (0) 2023.11.08
Cache-Control 헤더값  (0) 2023.11.08
상태코드 301, 302, 303, 307, 308의 차이점  (0) 2023.11.08