3.4.3.3 nonceとは
nounceとその仕組みについて学習します。
nonce (number used once)は、セキュアな通信で1回のみ使用される数値または値を指す暗号化用語です。Webセキュリティ、特にコンテンツ・セキュリティ・ポリシー(CSP)に関しては、特定のインライン・スクリプトの実行を許可するためにnonce属性が使用されます。
nonceの仕組みは次のとおりです:
- CSPとnonce - Webアプリケーションのコンテンツ・セキュリティ・ポリシー(CSP)を定義するときに、特定のnonce値を持つスクリプトのみの実行を許可するように指定できます。これにより、攻撃者はnonce値にアクセスできないため、悪意のあるスクリプトのインジェクションを阻止できます。
- 実装 - サーバーが、リクエストごとに一意のnonce値を生成してCSPヘッダーに含めます。実行を許可するインライン・スクリプトでは、スクリプト・タグにこのnonce値を含める必要があります。
次のnonceの例について考えてみます。
HTML (nonceがあるインライン・スクリプト)
<script nonce="random12345">
console.log('This script will run because it has the correct nonce.');
</script>
HTML (nonceがないインライン・スクリプト)
<script>
console.log('This script will be blocked by CSP because it lacks the correct nonce.');
</script>
この例では、正しいnonce random12345
があるスクリプトの実行が許可されますが、他のスクリプトはブロックされ、Webアプリケーションのセキュリティが向上します。残りの違反を確認するには、ブラウザ・コンソールを確認する必要があります。
親トピック: コンテンツ・セキュリティ・ポリシー(CSP)の構成