CSP란?
-> Content Security Policy(콘텐츠 보안 정책)의 줄임말. 신뢰된 web page context에서 악의적인 컨텐츠 실행을 예방하기 위해 도입된 (특히 XSS 관련된 공격) 컴퓨터 도입 표준이다. CSP는 web site 소유자들이 승인된 content origin을 선언할 수 있게 하는 표준 방식을 제공하며, 이를 통해 브라우저들이 JavaScript, CSS, image, audio 및 기타 HTML5 기능을 사용할 수 있게 허용이 가능해진다.
(위키백과 참조)
# XSS란? - cross site scripting. 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것. (참조 : https://nordvpn.com/ko/blog/xss-attack/) |
<지시문 종류>
1. none : 어떤 것도 허용하지 않음
2. self : 현재 출처에서는 허용하지만 하위 도메인에서는 허용하지 않음
3. unsafe-inline : inline JavaScript (<script>...</script>), inline Style (<style>...</style>)을 허용
4. unsafe-eval : eval과 같은 text- JavaScript 메커니즘을 허용
<형태 예시>
Content-Security-Policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';" => object, frame, media 같은 리소스들이 load되는 것을 허용하지 않음. => image, scripts, AJAX, CSS를 같은 origin에서 허용함. |
위와 같은 예시로 httpd.conf에 내용을 적용시키면 된다. (옵션 사용할 경우 " " 처리 잘 해야함)
Content-Security-Policy "default-src 'none'; script-src https://abc.com; style-src https://abc.com; img-src https://abc.com; connct-src https://ttt.com; child-src 'self'" => default-src 'none' : 기본적으로 모든 리소스 차단. 이것만 적용될 경우 사이트는 동작하지 않을 것 => 각각 script, style, image는 https://abc.com을을 통해 다운로드 되는 리소스만 허용 => connect-src https://ttt.com: 외부로의 데이터 요청 등은 https://ttt.com에서서 응답받은 내용만 가능 => child-src 'self' : iframe 등의 하위 요소는 동일 도메인만 가능 (sub-domain도 불가능) |
(참조 : https://cyberx.tistory.com/171)
src에는 모든 것을 아우르는 default-src 및 다른 종류들이 존재한다.
ex> child-src, connect-src, font-src, frame-src, img-src, manifest-src 등등
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src
CSP: default-src - HTTP | MDN
The HTTP Content-Security-Policy (CSP) default-src directive serves as a fallback for the other CSP fetch directives. For each of the following directives that are absent, the user agent looks for the default-src directive and uses this value for it:
developer.mozilla.org
여기에서 목록 및 각각의 정의에 대해 알아볼 수 있다.
'WAS & WEB' 카테고리의 다른 글
mpm test (0) | 2022.07.12 |
---|---|
Session & Cookie (0) | 2022.06.20 |
GCC (0) | 2022.06.14 |
Unicast vs Multicast (0) | 2022.05.18 |
Key store & Trust store (0) | 2022.04.18 |