nonce は HTML5.1 で追加された属性です。HTML Living Standard ではグローバル属性として定義されています。CSP(コンテンツセキュリティポリシー)に従い、XSS(クロスサイトスクリプティング)攻撃などによって Web ページ上に悪意を持って埋め込まれたスクリプトの実行を抑制するために用いられます。nonce は number used once の略で、一度だけ使用される数値を意味します。
例えば、HTTP のレスポンスに下記の様な HTTP ヘッダを付与します。nonce の値は毎回異なったランダム値を指定します。
Content-Security-Policy: script-src 'nonce-hUygTfgbgFcdRt5eDqpLfB6f==' 'strict-dynamic'
<script> タグにも、同じ nonce値を指定します。この場合、nonce値が設定された正規のスクリプトは実行されますが、nonce値を知らない悪意のスクリプトは実行されません。
<article> ~悪意のある書き込み~ <script>悪意のあるスクリプト</script> ~悪意のある書き込み~ </article> <script nonce="hUygTfgbgFcdRt5eDqpLfB6f==">正規のスクリプト</script>