nonce=nonce - 改竄チェック

属性

<tagName nonce=nonce> - 改竄チェック

サポート

https://caniuse.com/mdn-html_global_attributes_nonce

説明

nonce は HTML5.1 で追加された属性です。HTML Living Standard ではグローバル属性として定義されています。CSP(コンテンツセキュリティポリシー)に従い、XSS(クロスサイトスクリプティング)攻撃などによって Web ページ上に悪意を持って埋め込まれたスクリプトの実行を抑制するために用いられます。nonce は number used once の略で、一度だけ使用される数値を意味します。

使用例

例えば、HTTP のレスポンスに下記の様な HTTP ヘッダを付与します。nonce の値は毎回異なったランダム値を指定します。

HTTPヘッダ
Content-Security-Policy: script-src 'nonce-hUygTfgbgFcdRt5eDqpLfB6f==' 'strict-dynamic'

<script> タグにも、同じ nonce 値を指定します。この場合、ヘッダと同じ nonce 値が設定された正規のスクリプトは実行されますが、nonce 値を知らない悪意のスクリプトは実行されません。

HTML
<article>
  ~悪意のある書き込み~
  <script>悪意のあるスクリプト</script>
  ~悪意のある書き込み~
</article>
<script nonce="hUygTfgbgFcdRt5eDqpLfB6f==">正規のスクリプト</script>

リンク