在 <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」屬性。