본문 바로가기
web

콘텐츠 보안 정책 (CSP) Content-Security-Policy

by 냉면돈가스 2022. 1. 28.

CSP란 웹 취약점 중 하나인 XSS등의 공격을 방지하기 위한 보안정책입니다.

이를 이용해 원래 존재하지 않았던 스크립트를 막아준다거나,

특정 웹사이트에서만 자원을 불러오도록 설정할 수 있습니다.

 

저는 프론트엔드이므로 HTML파일의 meta태그로 설정하는법만 적겠습니다. (^__^)


문장의 형식자체는 쉽습니다.

<meta http-equiv="Content-Security-Policy" content="default-src 'none'">

 

 

content="이곳에 넣고싶은 지시문과 옵션을 넣으면 됩니다."

위에선 default-src 'none'이라고 되어있네요.

default-src 지시문은 [모든속성에 대해] 지시하겠단 뜻이고

none은 [허용하지않겠다] 란 뜻입니다.

=> 모든속성에 대해 허용하지 않겠다.

 

여러문장을 넣고싶을시엔

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'none'">

;로 구분을 주어 사용하면 됩니다.

self는 현재도메인의 리소스만 만 사용하겠다는 뜻입니다.

script-src가 'none'이니 모든 스크립트는 허용이 안되겠네요

=>모든속성에대해 현재도메인의 리소스만 허용하고 스크립트는 허용하지 않겠다.

 

 


지시문

default-src : 모든 리소스에 대한 정책

script-src : Javascript 등 웹에서 실행 가능한 스크립트에 대한 정책

style-src : css에 대한 정책

connect-src : script src로 불러올 수 있는 url에 대한 정책

img-src : 이미지 ( data: URL에서 이미지가 로드되는 것을 허용하려면 data:를 지정 )

script-nonce : script-src에 nonce가 포함되는 정책

form-action : form 태그 내 action 부분에 대한 정책

object-src : 플러그인, 오브젝트에 대한 정책

media-src : video, audio

font-src : font

sandbox : HTML 샌드박스

reflected-xss : X-XSS-Protection header와 동일한 효과

report-uri : 정책 위반 케이스가 나타났을 때 내용을 전달할 URL

base-uri: <base> 요소에 나타날 수 있는 URL을 제한


속성

none : 모두 차단

self : 현재 도메인만 허용

unsafe-inline : 소스코드 내 인라인 자바스크립트 및 CSS 허용 (기본적으론 인라인 스크립트를 금지합니다.)

 

 

 

'web' 카테고리의 다른 글

URL  (0) 2022.09.13
IP (인터넷 프로토콜)  (2) 2022.09.11
웹 사용자 인증방식 [ 쿠키 , 세션 , 토큰 ]  (0) 2022.03.09
http란?  (0) 2022.02.02
DNS란?  (0) 2022.01.24

댓글