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 |
댓글