티스토리 뷰

hacking/WEB hacking

CSP

kiwiiiv 2021. 1. 28. 17:45

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 들의 행동을 조작하는 공격을 막음.

 

 

 

 

 

CSP: script-src - HTTP | MDN (mozilla.org)

'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
링크
«   2025/05   »
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
글 보관함