web-dev-qa-db-ja.com

Chromeはすべてのリクエストに奇妙なHTTPS:1ヘッダーを追加します

HTTPSに関連するWebサイトで多くの奇妙なエラーが発生しています。これらのサイトはFFとIEでは問題なく動作しますが、Chromeではロードできません。セキュリティで保護されていないURL(http)をリクエストしているようですが、Google ChromeはリクエストにヘッダーHTTPS:1を追加します。

これにより、一部のサーバー(おそらくオフロードSSLを使用し、共有ホスティングを提供するサーバー)は、サーバーにSSLがないため、エラーで応答します。

セキュリティで保護されたページ(HTTPS)にリダイレクトされず、ソース内のすべての内部URLがhttpsに編集されています。

フィドラーとの接続を確認しました。この解析は私のコンピューターでは行われていません。唯一の違いはこのHTTPS:1ヘッダーです。

シンプルなPHP $_SERVER変数を出力するページを作成しました。chromeでアクセスすると、次のようになります:[HTTP_HTTPS] => 1。FireFoxでは表示されません。

すべてのデータを消去して、chromeをGoogleアカウントからペアリング解除し、Chromeを最初から削除してインストールしました。

誰かこれについて何か考えがありますか?それは私を夢中にさせています。

19
TwoDiv

どうやらバージョン44のバグは、最新のアップデートで修正されているようです。現在44.0.2403.107を使用していますが、問題は解消したようです。

詳細はこちら: http://www.zdnet.com/article/brand-new-chrome-44-release-added-a-bug/

4
TwoDiv

ほとんどの場合、問題が発生しているサイトは、HTTPS: 1リクエストヘッダーを誤って解釈するサーバーコードを実行しています。たとえば、Wordpress WooCommerceプラグインは、約 900,000サイト で実行されていますが、HTTPS: 1ヘッダーを誤って処理するバグのあるコードがあります。最新のパッチドキュメントを参照してください。ここ: https://woocommerce.wordpress.com/2015/07/07/woocommerce-2-3-13-security-and-maintenance-release/

StackOverflowにも同様の投稿があります: https://stackoverflow.com/questions/31565155/wordpress-woocommerce-forces-https-when-it-shouldnt/31570584#31570584

詳細については、Chrome=は、World Wide Web Consortium(W3C)のUpgrade Insecure Requests)仕様を実装しています。 セクション3.2.1 その仕様のUpgrade-Insecure-Requests HTTPリクエストヘッダーフィールドは、

3.2.1。 Upgrade-Insecure-Requests HTTPリクエストヘッダーフィールド

Upgrade-Insecure-Requests HTTPリクエストヘッダーフィールドは、暗号化され認証された応答に対するクライアントの設定を表す信号をサーバーに送信し、その設定をできるだけシームレスにするためにupgrade-insecure-requestsディレクティブを正常に処理できることを示します。提供する。

この設定は、次のANBFで表されます。

"Upgrade-Insecure-Requests:" * WSP "1" * WSP

WordpressでWooCommerceプラグインを実行しているサイトのようなサイトは、https:\\ヘッダーが非セキュアに設定されている場合、応答内のすべてのURLをHTTPS: 1リンクとして誤って書き換えています( http)リクエスト。

そのサイトのエンドユーザーとしての簡単な回避策は、Chrome以外のブラウザを使用することです。これらのWebサイトが修復されるまでは

15
Kirby

単なるwoocommerceだけではなく、wordpressが原因で不正なCSSや画像などが発生しています。

これをwp-config.phpの上部近くに追加して削除します

if($_SERVER['HTTP_HTTPS'] && !$_SERVER['HTTPS'])
{    unset($_SERVER['HTTP_HTTPS']);
}
3
Any

これを試して、HTTP_HTTPSヘッダーの設定を解除することができます。

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
    unset($_SERVER['HTTP_HTTPS']);
}
1
Aley