HTTP の Content-Security-Policy (CSP) upgrade-insecure-requests ディレクティブは、ユーザーエージェントに、すべてのサイトの安全でないURL (HTTP経由で提供されるURL) をセキュリティで保護された URL (HTTPSを介して提供されるもの) で置き換えられたかのように処理するよう指示します。このディレクティブは、書き換えが必要な安全ではない古い URL が多数存在するウェブサイトのためのものです。

upgrade-insecure-requests ディレクティブは、 block-all-mixed-content よりも前に処理され、もし設定されていれば後者は何もしません。どちらかのディレクティブを設定することをお勧めしますが、 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方を指定することはできません。

upgrade-insecure-requests ディレクティブは、第三者のサイトのリンクを経由してサイトにアクセスしたユーザーが最上位のナビゲーション用に HTTPS にアップグレードされることを保証しないため、 Strict-Transport-Security (HSTS) ヘッダーを置換せず、ユーザーがSSLストリッピング攻撃の対象にならないように、適切な max-age を設定するようにしてください。

構文

Content-Security-Policy: upgrade-insecure-requests;

// ヘッダー
Content-Security-Policy: upgrade-insecure-requests;

// meta タグ
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

HTTP から HTTPS への移行を望むドメイン example.com に上記のヘッダーを設定すると、ページ移動を伴わない安全ではないリソースのリクエストが自動的にアップグレードされます (第三者のリクエストが自分のものと同様に)。

<img src="http://example.com/image.png">
<img src="http://not-example.com/image.png">

これらの URL は、リクエストが行われる前に書き直されます。つまり、安全でない要求がネットワークに侵入しないようにします。なお、要求されたリソースが実際に HTTPS 経由で利用可能ではない場合、リクエストは HTTP で代替されずに失敗することに注意してください。

<img src="https://example.com/image.png">
<img src="https://not-example.com/image.png">

第三者のリソースへのナビゲーションをアップグレードすると、破壊の可能性が大幅に高まりますので、これらはアップグレードされません。

<a href="https://example.com/">Home</a>
<a href="http://not-example.com/">Home</a>

安全ではないリクエストの発見

Content-Security-Policy-Report-Only ヘッダーと report-uri ディレクティブを利用して、強制ポリシーと報告されたポリシーを次のように設定することができます。

Content-Security-Policy: upgrade-insecure-requests; default-src https: 
Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint

このようにして、安全なサイト上の安全でない要求は引き続きアップグレードされますが、監視ポリシーに違反した場合だけが、安全でないリソースがエンドポイントに報告されます。

仕様書

仕様書 状態 備考
Upgrade Insecure Requests
upgrade-insecure-requests の定義
勧告候補 初回定義

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応43 なし142 なし30 なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応4343 なし4230 なし4.0

1. Under consideration for future release.

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09
最終更新者: mfuji09,