Google Chromeが混在するコンテンツをデフォルトでブロック、バージョン79〜81で段階をへて仕様変更

[レベル: 上級]

HTTPS で配信するページでの混在するコンテンツを Google Chrome がデフォルトでブロックするようになります。
ブロックを解除するオプションがユーザーには提供されます。
仕様変更は段階をへて導入されます。

Google Security Blog がアナウンスしました。

現状は iframe と JavaScript のみ完全ブロック

HTTPS で配信するページで、画像やスクリプトなどのサブリソースを HTTP で配信すると一般的なブラウザでは警告が出ます。
Chrome も例外ではありません。
いわゆる、「混在するコンテンツ (Mixed Content)」です。

このサイトへの接続は完全には保護されていません

Chrome の場合、現状では、次のサブリソースは HTTPS ページなのに http:// で配信されていても、警告は出ますが読み込まれます。

  • 画像
  • オーディオ
  • 動画

一方、次のサブリソースは混在するコンテンツになると読み込まれません。

  • JavaScript
  • iframe

Mixed Content

3 つ出ている Mixed Content(混在するコンテンツ)エラーのうち、1 つ目は HTTPS ページで http:// で 画像を 読み込んでいます。
警告は出ていますが、読み込んでいます。
画像はページに表示されます。

2 つ目と 3 つ目は iframe のソースが http:// です。
こちらは完全にブロックされます(“This request has been blocked” というメッセージが出ている)。
キャプチャでは確認できませんが、iframe で埋め込んだページはブラウザには当然表示されず白くなります。

すべてのサブリソースを完全ブロック

今後リリースされる Chrome ではバージョン 79 を起点に、すべてのサブリソースをデフォルトでブロックするように仕様が段階的に変わっていきます。

影響を最小限に抑えるために、混在するコンテンツを検出した場合に自動的に HTTPS で読み込むように試みます。

たとえば、HTTPS ページで画像が
<img src="http://example.com/cat.jpg" />
のようになっていたとしても
<img src="https://example.com/cat.jpg" />
に自動的に置き換えます。

HTTPS で読み込み可能な限りは、HTML の記述が http:// であっても混在コンテンツは解消されます。
裏を返せば、HTTPS での読み込みが不可能はサブリソースは画像であれ動画であれ何であれ完全にブロックされます。

こうした仕様変更は具体的には次のようなプロセスで Chrome 79 〜 81 で段階をおって導入される予定です。

Chrome 79

Chrome 79 では、混在するコンテンツのブロックをサイト単位で解除するオプションを提供します。
ユーザーが自らの意思で許可すれば、ブロックされたサブリソースでも読み込ませることができます。
スクリプトと iframe ほか、ブロックされるすべてのサブリソースが対象です。

Chrome 79 は 2019 年 12 月に安定版をリリース予定です。

Chrome 80

Chrome 80 では混在するコンテンツになっているオーディオと動画のリソースは、https:// に自動的に更新されます。
画像は、混在するコンテンツになっていてもそのまま読み込まれますが、「保護されてない通信」のラベルが Omnibox (URL バー) の先頭に表示されます。

保護されてない通信

サイト全体が HTTPS であっても、画像が http:// で読み込まれる混在するコンテンツだと「保護されてない通信」になります。

Chrome 80 は、2020 年 1 月に開発版をリリース予定です。

Chrome 81

Chrome 81 では、http:// で読み込まれる画像は https:// で読み込むように自動で更新されます。
https:// での読み込みに失敗する場合は、完全にブロックされます。
つまり、その画像はページに表示されません。

画像は最もよく使われるサブリソースです。
もし表示されないと影響が大きいので最後にもってきたのでしょうね。

Chrome 81 は開発版を 2020 年 2 月にリリース予定です。

混在するコンテンツをなくす

HTTPS ページでリソースを http:// 配信してしまう混在するコンテンツは今すぐに修正しましょう。

Chrome の仕様変更は検索には関係しないとしても、ユーザー体験を損ねます。
何よりもセキュリティとプライバシー保護を低下させます。

公式アナウンスは、混在するコンテンツを自動で解消する 2 つのツールを紹介しています。

  • SSL Insecure Content Fixer: WordPress のプラグインです。混在するコンテンツの原因になる http:// のサブリソースを https:// で読み込むように置き換えます。日本語化されているようです。
  • Cloudflare: CDN サービスの CloudflareAutomatic HTTPS rewrites という機能を提供しています。ON にすると http:// のサブリソースを https:// で読み込むように置き換えます。

Automatic HTTPS rewrites

最初から混在するコンテンツが存在しないのが理想です。
しかし、すべて監査するのが難しいときは、ツールも活用しながら 完全な HTTPS 配信を目指してください。