【HTML Living Standard】nonce属性の使い方
nonce属性の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
nonceプロパティは、コンテンツセキュリティポリシー(CSP)と連携してウェブページのセキュリティを強化するために使用される情報を保持するプロパティです。HTMLのグローバル属性の一つであり、主に<script>要素や<style>要素に適用されます。
このプロパティの主な役割は、ウェブページに埋め込まれたインラインスクリプトやインラインスタイルが、信頼できるソースからのものであることをブラウザに証明することです。サーバー側で毎回ランダムかつ予測不可能な一意のnonce値(number used once、一度限り有効な値)を生成し、これをHTTPレスポンスヘッダーのContent-Security-Policyと、HTMLドキュメント内の対応する<script>または<style>要素の両方に付与します。
ブラウザは、CSPヘッダーで指定されたnonce値と、各要素に設定されたnonce値が完全に一致する場合にのみ、そのインラインコードの実行を許可します。これにより、クロスサイトスクリプティング(XSS)攻撃などによって悪意のあるインラインコードがウェブページに挿入されても、ブラウザはその実行をブロックし、セキュリティリスクを大幅に軽減できます。
nonce属性を効果的に利用するには、サーバー側での適切なnonce値の生成と、リクエストごとに異なる値を使い回しなく使用する厳格な管理が不可欠です。この仕組みは、現代のウェブアプリケーションにおけるセキュリティ防御の重要な要素の一つとして機能します。
公式リファレンス: HTML nonce global attribute
構文(syntax)
1<script nonce="random_string_generated_by_server"></script>
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません