Content Security Policy 實戰:用 nonce、hash 與 strict-dynamic 擋 XSS
CSP 是 XSS 的第二道防線先把邊界講清楚:Content Security Policy 不能修掉 XSS 漏洞。輸出編碼、HTML sanitization、避免危險 DOM sink 仍是第一道防線;CSP 的工作是限制腳本從哪裡載入、哪些 inline script 能執行,以及能不能使用 eval() 這類字串執行 API,讓注入成功後不一定能跑起來。 攻擊者注入 XSS 時,塞進 DOM 的往往是 <script>alert(document.cookie)</script> 這種直接寫在 HTML 裡的程式碼,或是 onclick="..." 這類行內事件處理器。瀏覽器一旦套上嚴格的 script-src,這些東西就跑不起來——這才是 CSP 的價值所在。 當 script-src 裡的 'unsafe-inline' 真的生效,inline <script>、事件處理器與 javascript: URL 都可能被放行,CSP 對常見 XSS 注入的防護會大幅下降。其他指令仍能限制圖片、連線...




