混合コンテンツチェッカー

スキャンするHTML

HTTPSページ内で読み込まれた http:// リソースを検出します。

次へ

サイトをHTTPSに移行した後、http://...を指している<img><script><link>、または<iframe>といったタグが残存すると、緑色のロックマークが表示されず、現代のブラウザではページが完全に読み込まれないことがよくあります。URLを入力すると、このチェッカーはページを読み込み、すべてのサブリソース(画像、スタイルシート、スクリプト、フォント、IFrame、動画、音声)を検証し、通常のHTTP経路で提供されている要素を一覧化します。これにより、ユーザーが「完全にセキュアではない」という警告が表示される前に問題を修正できます。

スキャンの仕組み

  1. 1

    URLを入力してください

    HTTPSのURL。スキャナーは1回のリダイレクトを経由して処理します。

  2. 2

    ページが取得されました

    HTMLはすべてのサブリソース参照について解析されます。

  3. 3

    すべての参照は分類されています

    HTTPS、HTTP、またはプロトコル相対方式(`//cdn...`)。

  4. 4

    タイプ別にグループ化したレポート

    アクティブコンテンツとパッシブコンテンツを深刻度順に表示します。

アクティブとパッシブの混合コンテンツ

ブラウザはこの2種類を異なる方法で扱います。

  • アクティブな混合コンテンツ(スクリプト、iframe、スタイルシート、XHR/fetch、ワーカー、WebSocket)。最近のブラウザでは完全にブロックされます。対象は <script><link rel="stylesheet"><iframe>fetch()XMLHttpRequestimportScripts() など。
  • パッシブな混合コンテンツ(画像、動画、音声のポスター)。読み込まれるものの警告が付きます、鍵マークが外れ、アドレスバーに警告が表示されます。対象は <img><audio><video>、フォームの action など。

なぜ重要なのか

  • 信頼性。 壊れた鍵マークは、それに気づいたユーザーに「このサイトは安全でない」と明確に伝えます。
  • 機能性。 アクティブなコンテンツがブロックされると、スクリプトが実行されず、スタイルシートも適用されないため、ページの表示が崩れます。
  • SEO。 Google は HTTPS ページを優先します。HTTPS のシグナルが壊れていると、間接的に検索順位へ悪影響を及ぼします。
  • コンプライアンス。 PCI DSS をはじめ多くのコンプライアンス基準は、決済ページに混合コンテンツのない HTTPS を求めています。

よくある原因

原因 一般的な修正方法
HTTP で配信される古い CDN ドメインを HTTPS CDN に切り替える
YouTube / Vimeo の古い埋め込みコード 埋め込みを最新バージョンに更新する
広告ネットワークのスクリプト URL HTTPS 版を使う(何年も前から利用可能)
サードパーティのフォントや地図 http://fonts.googleapis.comhttps:// に変更する
ソーシャルボタンのウィジェット 最新のウィジェットコードを使う
ユーザー投稿の画像 URL 保存時に書き換える。表示時はプロキシ経由で読み込む
ブログ記事にハードコードされた URL データベースで一括置換する

修正の戦略

  1. プロトコル相対 URL(//cdn.example.com/a.js)。 現在のページのプロトコルで読み込まれます。ほとんどの CDN で安全ですが非推奨のため、明示的な https://... を優先してください。
  2. ソースを書き換える。 テンプレートやコンテンツを https:// を使うよう更新します。正規表現 http://(?!localhost) でコードベースをスキャンしましょう。
  3. Content Security Policy のアップグレード。 Content-Security-Policy: upgrade-insecure-requests は、HTTP アセットの URL を自動的に HTTPS へ書き換えるようブラウザに指示します。すべての URL を監査できないサイトに最適です。
  4. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> はそのインライン相当です。
  5. HTTP のみのアセットをプロキシ経由で配信する。 上流に本当に HTTPS エンドポイントがない場合(現在ではまれ)、自サイトの HTTPS オリジンを経由させます。

チェッカーが検出する内容

  • <img><script><link><iframe><video><audio><source> で参照されるすべての外部 URL。
  • フォームの action 属性。
  • <style> ブロック内のインライン CSS の url(...) 参照。
  • JavaScript で挿入されたリソースはクロールしません。これらは実行時に追加されるため、ブラウザ側での監査が必要です(Chrome DevTools の「問題」パネルで検出できます)。

よくある質問

部分的にです。upgrade-insecure-requests CSPヘッダーまたはメタタグは、ブラウザにHTTPサブリソースURLを自動的にHTTPSに変換するよう指示します。サーバーがHTTPSをサポートしている場合にのみ機能します;上流がHTTPのみの場合には変換に失敗します。

いいえ。静的HTMLで参照されているリソースのみを対象としています。実行時に<img>要素を生成するスクリプトは表示されません。Chrome DevToolsの問題パネルではブラウザ内でこれらの問題を検出します。

これらのマークアップはHTTPSページでは混合コンテンツに対しても安全です(HTTPSの特性を継承します)。しかし、HTTPのみを使用する内部ツールやアーカイブページでは機能が失われます。また、使用は推奨されていません。明示的なhttps://を使用することをお勧めします。

ブラウザキャッシュが原因です。ハードリフレッシュ(Ctrl+Shift+R / Cmd+Shift+R)またはシークレットウィンドウでテストして修正を確認してください。CSPレポートおよびコンソール警告に現在の状態が表示されます。

サーバー側の取得処理がページを取得して分析に使用します。URL自体はリクエスト以外には保存されません。

関連ツール

このツールは他の言語でも利用できます