CSP: upgrade-insecure-requests

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 の定義
勧告候補 初回定義

ブラウザーの対応

No compatibility data found. Please contribute data for "http.headers.csp.upgrade-insecure-requests" (depth: 1) to the MDN compatibility data repository.

関連情報