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}}
-