250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- js배열 알고리즘
- 함수형 프로그래밍 특징
- v8 원리
- next js
- 리액트
- 타입스크립트
- 웹팩 기본개념
- 리덕스
- this
- 항해99 부트캠프
- jwt
- 리액트 메모
- 실행컨텍스트
- 알고리즘
- 항해99 사전스터디
- 항해99
- 리액트 렌더링 최적화
- FP 특징
- gql restapi 차이
- 코어자바스크립트
- toggle-btn
- 테스트 코드 툴 비교
- chromatic error
- 리액트 메모이제이션
- 웹 크롤링
- Js module
- 렌더링 최적화
- JS module system
- 자바스크립트 엔진 v8
- 항해99 미니프로젝트
Archives
- Today
- Total
Jaeilit
콘텐츠 보안정책(CSP) 본문
728x90
Content Security Policy (CSP)
XSS (교차 사이트 스크립팅) 및 클릭재킹 데이터 삽입 공격을 비롯한 특정 유형의 공격을 감지하고 완화하는데 도움이 되는 추가 보안계층
CSP를 활성화 하려면 HTTP 헤더를 반환하도록 웹 서버를 구성해야함,
이전 버전에서는 헤더에 X-Content-Security-Policy 가 있었지만 이는 더이상 볼 수 없음,
HTTP 헤더 또는 meta 태그를 이용하여 정책을 구성 할 수 있음,
HTTP 헤더 사용
Content-Security-Policy: default-src https:
html <Head> 사이에 작성
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; img-src https://*; child-src 'none';">
XSS 교차사이트 스크립팅이란??
자바스크립트에 악성 스크립트를 삽입하여 쿠키, 세션등 민감한 정보를 탈취하거나 비정상적인 기능을 수행하게 한다.
https://noirstar.tistory.com/266
CSP 의 주요목표는 XSS 공격을 완화하고 보고 하는 것,
XSS 는 악성 스크립트를 주입하는 방식으로 클라이언트가 허용 된 도메인에서 수신한 소스 파일에 로드 된 스크립트만 실행하게 하면 서버 관리자가 XSS가 발생할 수 있는 벡터를 줄이거나 제거 할 수 있다.
스크립트 소스를 제어하는 방법
지시문
- child-src개발자는 중첩된 브라우징 컨텍스트와 작업자 실행 컨텍스트를 제어할 수 있습니다.
- connect-src가져오기 요청, XHR, 이벤트 소스, 비콘 및 웹 소켓 연결에 대한 제어를 제공합니다.
- font-src글꼴을 로드할 URL을 지정합니다.
- img-src이미지를 로드할 수 있는 URL을 지정합니다.
- manifest-src애플리케이션 매니페스트가 로드될 수 있는 URL을 지정합니다.
- media-src비디오, 오디오 및 텍스트 트랙 리소스를 로드할 수 있는 URL을 지정합니다.
- prefetch-src리소스를 미리 가져올 수 있는 URL을 지정합니다.
- object-src플러그인을 로드할 수 있는 URL을 지정합니다.
- script-src스크립트를 실행할 수 있는 위치를 지정합니다. 다른 스크립트와 같은 지시문에 대한 대체 지시문입니다.
- script-src-elem스크립트 요청 및 블록 실행이 발생할 수 있는 위치를 제어합니다.
- script-src-attr이벤트 핸들러의 실행을 제어합니다.
- style-src스타일이 문서에 적용되는 위치를 제어합니다. 여기에는 HTTP 응답 헤더 필드 에서 시작된 <link>요소, 규칙 및 요청이 포함됩니다.@importLink
- style-src-elem인라인 속성을 제외한 스타일을 제어합니다.
- style-src-attr스타일 속성을 제어합니다.
- default-src다른 fetch 지시문에 대한 대체 지시문입니다. 지정된 지시문에는 상속이 없지만 지정되지 않은 지시문은 의 값으로 대체됩니다 default-src.
문서 지시문
- base-uri<base>요소가 사용할 수 있는 가능한 URL을 지정합니다 .
- plugin-types문서에 로드할 수 있는 리소스 유형을 제한합니다( 예: application/pdf). <embed>영향 을 받는 요소에는 3가지 규칙이 적용됩니다 <object>.
- 요소는 해당 유형을 명시적으로 선언해야 합니다.
- 요소의 유형은 선언된 유형과 일치해야 합니다.
- 요소의 리소스는 선언된 유형과 일치해야 합니다.
- sandbox양식 제출과 같은 페이지의 작업을 제한합니다.
- 요청 헤더와 함께 사용되는 경우에만 적용됩니다 Content-Security-Policy.
- 지시문에 대한 값을 지정하지 않으면 모든 샌드박스 제한이 활성화됩니다.Content-Security-Policy: sandbox;
- 샌드박스 구문
탐색 지시문
- navigate-to문서가 어떤 수단으로든 탐색할 수 있는 URL을 제한합니다( 2021년 1월 최신 브라우저에서는 아직 지원되지 않음 ).
- form-action양식이 제출할 수 있는 URL을 제한합니다.
- frame-ancestors<frame>, <iframe>, <object>, <embed>또는 <applet>요소 내부에 요청된 리소스를 포함할 수 있는 URL을 제한합니다 .
- 이 지시문이 <meta>태그에 지정되면 지시문이 무시됩니다.
- 이 지시문은 지시문으로 대체되지 않습니다 default-src.
- X-Frame-Options이 지시문에 의해 더 이상 사용되지 않으며 사용자 에이전트에서 무시됩니다.
옵션 (src)
- * : 모든 것을 허용
- 'none' : 모두 차단
- 'self' : 현재 도메인만 허용
- 'unsafe-inline' : 소스코드 내 인라인 자바스크립트 및 CSS 허용
- 'unsafe-eval' : eval 같은 텍스트-자바스크립트 메커니즘 허용
예제)
Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com
- 이미지는 어디에서나 로드할 수 있습니다. => *;
- 미디어는 media1.com 및 media2.com에서만 허용됩니다(해당 사이트의 하위 도메인에서는 허용되지 않음).
- 실행 가능한 스크립트는 userscripts.example.com에서만 허용됩니다.
참고글
https://jdh5202.tistory.com/820
728x90
'TIL' 카테고리의 다른 글
nginx 로컬에서 띄우기 (0) | 2022.06.16 |
---|---|
콘텐츠 보안정책(CSP) - XSS 공격 방어(2) (0) | 2022.06.14 |
로컬에서 메타태그 테스트 하는 방법 (0) | 2022.05.26 |
SVG vs PNG (0) | 2022.05.24 |
Position Sticky 시 엘리먼트가 더 클 경우 활용 (0) | 2022.05.24 |