티스토리 뷰
CSP (Content Security Policy)
xss 공격을 방어하는 기법, 웹 페이지에서 사용될 수 있는 자원(script, img .. )의 위치를 현재 도메인으로 제한하는 등의 제약을 걸어 xss 등의 공격을 방어함.
정책 디렉티브(policy-directive)를 통하여 규칙을 지정함
- child-src : iframe, frame 같은 nested browsing contexts를 규제함(frame-src, worker-src 등으로 대체 가능)
- default-src : 기본형. 다른 CSP 규칙이 정의되지 않았을 때 대체하는 용도로 사용됨
- script-src : 자바스크립트에 대한 출처를 검증함
- img-src
- object-src : <object>, <embed>, <applet> 등을 규제함
CSP에서 사용하는 origin
- <host-source> : 호스트, 포트로 판별
https://kikikiwiii10.tistory.com:5050 - <scheme-source> : url scheme로 판별
http:, https:, data: 등.. - 'self' : 같은 origin의 자원, 현재의 usl scheme와 동일한 값을 포함한 url만 허용. 즉 동일 도메인만 허용
- 'unsafe-eval' : eval(),function() 등의 안전하지 않은 함수를 허용
- 'unsafe-inline' : 유효한 nonce나 해시가 지정되지 않은 <script>, javascript: URL, <style> 등을 허용
- 'none' : 모든 origin을 허용하지 않음
- nonce-<base64> : base64 형태인 nonce값을 지정
- <hash algo>-<base64> : 해시 값을 사용
ex1) Content-Security-Policy : default-src 'self' https://kikikiwiii10.tistory.com
페이지 내부의 자원들(default-src)이 현재 페이지의 출처와, https://kikikiwiii10.tistory.com에서만 로드되어야 함
ex2) Content-Security-Policy : default-src 'nonce-KdLUlebeP1OORQr89hfFBQDHSYE=';
<script nonce="KdLUlebeP1OORQr89hfFBQDHSYE="> 처럼 nonce 속성이 알맞게 입력된 태그만을 허용
즉 nonce값에 의존하여 허가 여부를 판별하기 때문에 요청 시마다 nonce값을 새로 생성하는 작업이 필요하며, nonce 값을 담고 있는 http 헤더 또는 <meta> 태그가 캐시되지 않도록 주의하여야 함
(; 는 1개 이상의 정책 디렉티브를 서로 분리할 때 사용. 이 때에는 생략해도 무방함)
ex3) Content-Security-Policy : script-src 'sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8='
<script "sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8=">
ex2와 동일 방식
ex4) Content-Security-Policy : base-uri 'none'
상대 경로를 해석하는 기준점을 제시하는 <base> 를 이용한 공격을 방어함.
<base href="https://makeforce.test/xss/"> 와 같은 마크업을 삽입하여 상대 경로를 사용하여 url 들의 행동을 조작하는 공격을 막음.
'hacking > WEB hacking' 카테고리의 다른 글
Flask-dev (0) | 2021.02.09 |
---|---|
web-ssrf (0) | 2021.01.31 |
LFI (- RFI) (0) | 2021.01.22 |
xss - csrf (0) | 2021.01.21 |
한글 정규 표현식 쓰기 (0) | 2020.07.01 |
- Total
- Today
- Yesterday
- Knapsack
- 위상 정렬
- 비트마스킹
- MinHeap
- 배낭 문제
- Greedy
- 분할정복
- LowerBound
- 참조 지역성
- Segment Tree
- 최단 거리
- prirotyqueue
- dfs
- 완전탐색
- 백트래킹
- 분할 정복
- RequiredArgsConstructor
- 동적계획법
- 구간 합
- 부분 합
- MaxHeap
- 누적 합
- 희소 배열
- Sort
- Priority Queue
- 페르마의 정리
- 이분탐색
- 완전 탐색
- dp
- HashSet
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |