在 <script>
元素中加入 nonce
屬性
使用以 Nonce 為基礎的 CSP 時,每個 <script>
元素都必須具有 nonce
屬性,且該屬性必須與 CSP 標頭中指定的隨機 Nonce 值相符 (所有指令碼都可以有相同的 Nonce)。第一步是將這些屬性新增至所有指令碼:
已遭 CSP 封鎖
<script src="/path/to/script.js"></script>
<script>foo()</script>
由於這些指令碼沒有 `nonce` 屬性,因此 CSP 會封鎖這些指令碼。
CSP 允許
<script nonce="${NONCE}" src="/path/to/script.js"></script>
<script nonce="${NONCE}">foo()</script>
如果將 `${NONCE}` 替換為與 CSP 回應標頭中的 Nonce 相符的值,CSP 就會允許執行這些指令碼。請注意,部分瀏覽器在檢查網頁來源時會隱藏「nonce」屬性。