[解決済み】「Upgrade-Insecure-Requests」HTTPヘッダーとは何ですか?
質問
HTTP(非HTTPS)サイトにPOSTリクエストを行い、Chromeのデベロッパーツールでリクエストを検査したところ、サーバーに送信する前に独自のヘッダーを追加していることがわかりました。
Upgrade-Insecure-Requests: 1
で検索した結果
Upgrade-Insecure-Requests
のみ見つけることができます。
情報
を送信するサーバーについて
これ
ヘッダを表示します。
Content-Security-Policy: upgrade-insecure-requests
これは関連性があるように見えますが、私の場合、CLIENT がヘッダを リクエスト 一方、私が見つけたすべての情報は、サーバーが関連するヘッダを レスポンス .
では、なぜ Chrome (44.0.2403.130 m) は、次のようなものを追加しているのでしょうか。
Upgrade-Insecure-Requests
をリクエストに追加して、何をするのですか?
2016-08-24に更新しました。
このヘッダーは、その後 W3C 勧告候補 であり、現在では公式に認められています。
この質問に出会ったばかりで、戸惑っている人のために エクセレントアンサー Simon East氏がうまく説明してくれています。
は、以下の通りです。
Upgrade-Insecure-Requests: 1
ヘッダーは、以前は
HTTPS: 1
以前のW3C Working Draftでは
という名前に変更され
静かに
は、この変更が公式に受け入れられる前に、Chromeによって変更されました。
(この質問は、このヘッダーに関する公式文書がなく、Chrome がこのヘッダーを送信する唯一のブラウザであったこの移行期に行われました)。
解決方法は?
短い答え: それは
Content-Security-Policy: upgrade-insecure-requests
レスポンスヘッダをサポートすることを示すもので、ブラウザがこれを好むことを示します。
30分ほどググって、ようやくW3仕様の中に埋もれているのを発見しました。
混乱したのは、仕様書のヘッダーが
HTTPS: 1
で、Chromiumはこのように実装しているのですが、この後
は、不適切にコーディングされた多くのウェブサイトを破壊しました。
(特にWordPressとWooCommerce)Chromiumチームは謝罪した。
開発中およびベータ版でのフィードバックに基づき、影響を過小評価していたようです。
- マイク・ウェスト、で
Chrome 問題 501842
その修正方法は、名前を
Upgrade-Insecure-Requests: 1
その後、仕様が更新され、一致するようになりました。
ともかく、以下はその説明です。 W3仕様 (当時は) ...
は
HTTPS
HTTPリクエストヘッダーフィールドは、サーバーにシグナルを送信します。 クライアントの好みを表現する 暗号化され認証された応答のため、そして upgrade-insecure-requests ディレクティブを正常に処理することができます。 を、できるだけシームレスに提供できるようにすることです。...
サーバーは HTTP リクエストのヘッダーでこの設定に遭遇した場合、リクエストされたリソースの安全性の高い表現にユーザーをリダイレクトすべきです (SHOULD)。
サーバーが HTTPS リクエストのヘッダーでこのプリファレンスを見つけた場合、そのサーバーは
Strict-Transport-Security
ヘッダは、リクエストのホストがHSTS-safeまたは条件付きでHSTS-safe [RFC6797]の場合、レスポンスに含まれます。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] cURL呼び出しによるHTTPリクエストを使用してヘッダーを送信する方法は?
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] 「Chromeデバッガで「注意:暫定的なヘッダが表示されます。
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】プリフライトCORSリクエストの導入の動機は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ゼロサイズ返信。Squid はこの要求に対してデータを受信しませんでした。
-
[解決済み] Chrome開発者ツールのスクリプトのブラックボックス化オプション
-
[解決済み] Google ChromeでCookieをコピーする方法を教えてください。
-
[解決済み] BraveブラウザにChromeのdev-toolsがあるのはなぜか?
-
[解決済み] 自己署名入りSSL証明書が無効 - "サブジェクトの代替名がありません".
-
[解決済み] badidea」や「thisisunsafe」を使ってChromeの証明書/HSTSエラーを回避する場合、現在のサイトにのみ適用されるのでしょうか?[クローズド]
-
[解決済み] google chromeの開発ツールにスポイトツールはありますか?
-
[解決済み] Google Chromeがlocalhostをhttpsにリダイレクトする件
-
[解決済み】Chrome Dev Tools - "サイズ "と "コンテンツ "の違いについて
-
[解決済み】Chrome:console.log、console.debugが動作しない。