このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

グローバル属性~“nonce”属性HTML Living Standardで定義

記事July 7th,2020
コンテンツセキュリティポリシーのためのワンタイムトークンを示す属性
この記事はHTML Living Standardに対応しています。
この記事はHTML Living Standardに対応しています。

nonce”属性について

nonce”属性はコンテンツセキュリティポリシーのためのワンタイムトークン、ノンス(“nonce“、“number used once“)を示す属性です。

ノンスはリクエストごとにサーバー側で生成するBASE64でエンコードした暗号(例えば“MYIZSx1TUjkJWSAQfr7I7i4vJB0=”)で、“content-security-policy”HTTP ヘッダーに同じ値(例えば“nonce-MYIZSx1TUjkJWSAQfr7I7i4vJB0=”)が含まれた場合にのみ“nonce”属性が指定されたスクリプトなどが実行されます。

スクリプトなどが第三者によって意図せず加えられたものでないかを検証し、クロスサイトスクリプティングなどのインジェクション攻撃の回避に役立ちます。

ノンスが推測できないものでないと意味を持たないため、静的生成されるウェブページではあまり意味を持たず、動的生成するウェブページで使用されるべきです。

指定できる値

属性値 説明
ワンタイムトークン 自動生成したBASE64でエンコードされた暗号

サンプルコード

<script type="text/javascript" nonce="<%= @nonce %>">
now = new Date()
document.write("今日は" + now.getFullYear() + "年"
+ (now.getMonth() + 1) + "月"
+ now.getDate() + "日です")
</script>
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク