<script> 元素中新增 nonce 屬性

如果使用以 Nonce 為基礎的 CSP,則每個 <script> 元素都必須有 nonce 屬性,該屬性與 CSP 標頭中指定的隨機 Nonce 值相符 (所有指令碼皆可具有相同的 Nonce)。第一步是將這些屬性新增至所有指令碼:

遭到 CSP 封鎖

<script src="/path/to/script.js"></script>
<script>foo()</script>

CSP 會封鎖這些指令碼,因為這些指令碼沒有「nonce」屬性。

由 CSP 允許

<script nonce="${NONCE}" src="/path/to/script.js"></script>
<script nonce="${NONCE}">foo()</script>

如果將「${NONCE}」替換為與 CSP 回應標頭中符合 Nonce 的值,CSP 就會允許執行這些指令碼。請注意,部分瀏覽器在檢查網頁原始碼時,會隱藏「nonce」屬性。