CSP header - nowol79/knowledge_base GitHub Wiki

  • ์‚ฌ์šฉ๋ชฉ์  : ํŠน์ • ์›นํŽ˜์ด์ง€์—์„œ ์ฃผ์–ด์ง„ ์ •์ฑ…์— ์–ด๊ธ‹๋‚œ ๋ฆฌ์†Œ์Šค๋“ค์„ ๋ฆฌํฌํŒ… ๋ฐ›์•„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•

    • ์„œ๋ฒ„ ์‘๋‹ต header์— Content-Security-Policy-Report-Only ์†์„ฑ ์ถ”๊ฐ€
    • ๋ธŒ๋ผ์šฐ์ ธ๊ฐ€ ์ง€์ •๋œ directive์— ์–ด๊ธ‹๋‚œ ๊ฒฝ์šฐ POST method๋กœ ๋ฆฌํฌํŒ…์„ ํ•ด ์ค€๋‹ค. CSP
  • ์‚ฌ์šฉ์˜ˆ์ œ

    • inline ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ—ˆ์šฉํ•˜๊ธฐ ์•Š๊ธฐ ์œ„ํ•ด์„œ 'safe-inline' directive ์ถ”๊ฐ€ํ•ด ๋ณด์ž.

      <?php
      header("Content-Security-Policy-Report-Only: default-src data: 'safe-inline'; report-uri http://report.com:20000/");
      ?>
      <script>alert('Hello, world.');</script>
    * report.com:20000 ์„œ๋ฒ„์—์„œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด...์•„๋ž˜์™€ ๊ฐ™์ด Chrome ๋ธŒ๋ผ์šฐ์ €์—์„œ POST ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฆฌํฌํŒ… ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด ์ค€๋‹ค. 
    
    

    $ nc -l 20000 POST / HTTP/1.1 Host: report.com:20000 Connection: keep-alive Content-Length: 314 Origin: http://report.com:20070 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 Content-Type: application/csp-report Accept: / Referer: http://report.com:20070/csp_example.php Accept-Encoding: gzip, deflate Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2

    {"csp-report":{"document-uri":"http://report.com:20070/csp_example.php","referrer":"","violated-directive":"default-src data: 'safe-inline'","effective-directive":"script-src","original-policy":"default-src data: 'safe-inline'; report-uri http://report.com:20000/","blocked-uri":"","status-code":200}}

โš ๏ธ **GitHub.com Fallback** โš ๏ธ