混在コンテンツとは
混在コンテンツ(mixed content)とは、HTTPSで配信されているページが、画像・スクリプト・スタイルなどの一部をhttp(暗号化なし)で読み込んでいる状態を指します。ページ全体は安全に見えても、http部分は途中で盗み見や改ざんを受ける余地があります。
特にスクリプトを含む混在は危険度が高く、多くのブラウザは自動的にブロックします。一方で画像などはブロックされず警告だけのこともあり、気づかないまま放置されがちです。
なぜ危険なのか
HTTPSの価値は通信の暗号化と改ざん検知にあります。ところがhttpで読み込む部分は暗号化されず、通信経路上で内容をすり替えられる可能性があります。
もしhttpで読み込んだスクリプトが攻撃者にすり替えられれば、HTTPSページであっても任意のコードを実行されかねません。せっかくHTTPS化しても、一箇所のhttp読み込みが全体の安全性を損なう、という点が混在コンテンツの怖さです。
よくあるNG例と安全な直し方
http混在(mixed content)のセキュリティリスクでは、「検索に出さない」と「見られないようにする」を混同しないことが重要です。noindexやrobots.txtは検索エンジンへの指示であり、アクセス制限そのものではありません。
安全に共有するには、誰に見られると困るかを先に決め、URL共有だけで足りるのか、認証や期限が必要なのかを選びます。共有相手と機密度が決まったら、URLのみ・パスワード・メール認証・会社ドメイン認証のどれで渡すかを選びます。
- NG: 機密情報入りHTMLを認証なしURLで共有し、noindexだけで安心する
- OK: パスワード・メール認証・会社ドメイン認証で閲覧者を絞る
- NG: テスト用APIキーや社内URLをHTML内に残したまま渡す
- OK: 公開前に外部送信先、秘密情報、フォーム送信先を確認する
アクティブとパッシブの違い
混在コンテンツは、改ざんされたときの影響度で大きく二つに分けて考えられます。両者は危険度が異なります。
- アクティブ混在:スクリプトやスタイルなどページ全体に影響しうるもの。危険度が高く、多くは自動でブロックされる
- パッシブ混在:画像や音声など影響が限定的なもの。ブロックされず警告にとどまることがあるが、改ざんやプライバシー上の懸念は残る
見つけて直す手順
混在コンテンツはツールで見つけて、読み込み先を直すのが基本です。次の手順で対応しましょう。
- ブラウザの開発者ツールのコンソールで混在コンテンツの警告を確認する
- HTMLやCSS内のhttp://で始まる読み込み先を洗い出す
- 対象がhttpsに対応しているか確認し、対応していればhttpsへ書き換える
- 対応していない外部リソースは、https提供元への差し替えや自前ホストを検討する
- 修正後、警告が消えてすべてhttpsで読み込まれていることを確認する
共有HTMLで混在を持ち込まないために
AI生成や外部から受け取ったHTMLには、httpのままの画像URLや古いCDN参照が残っていることがあります。ローカルで開くと気づきにくく、共有して初めて警告が出ることも珍しくありません。
ギガサイト便ではHTMLをドロップすると、公開URLはHTTPSが自動で付きます。つまりページ側はHTTPSでも、HTMLの中にhttp読み込みが残っていれば混在コンテンツになります。共有前にhttp://の参照がないか点検しておくと、レビューで「画像が出ない」「警告が出る」といった手戻りを防げます。同じURLのままファイルを差し替えられるので、修正版への入れ替えもスムーズです。
よくある質問
鍵マークが付いていれば安全ではないのですか?
鍵マークはページ本体がHTTPSであることを示すだけです。ページ内にhttpで読み込む部分が残っていれば、その部分は保護されません。鍵マークの有無だけでなく、混在コンテンツの警告も確認することが大切です。
画像だけのhttp読み込みも直すべきですか?
直すことをおすすめします。画像の混在は影響が限定的でブロックされないこともありますが、改ざんやプライバシー上の懸念は残り、警告表示の原因にもなります。可能な限りhttpsへ統一するのが望ましいです。
混在コンテンツはどう見つけますか?
ブラウザの開発者ツールを開き、コンソールに表示される混在コンテンツの警告を確認するのが手早い方法です。あわせてソース内のhttp://で始まる読み込み先を検索すると、見落としを減らせます。
ギガサイト便で公開すれば混在は自動で直りますか?
公開URLにはHTTPSが自動で付きますが、HTML内のhttp読み込みまで書き換えるわけではありません。中身にhttp://の参照が残っていれば混在になります。共有前にソースを点検し、httpsへ直してから差し替えるのが確実です。
noindexを設定すれば認証は不要ですか?
不要ではありません。noindexは検索結果への表示を抑えるための指定で、URLを知っている人の閲覧を止める仕組みではありません。閲覧者を制限したい場合は認証が必要です。