セキュリティ
mixed content(混在コンテンツ)とは? https化サイトでよくある落とし穴と直し方
https化したのに一部だけhttp://のまま読み込まれる、混在コンテンツの検出です。
mixed contentとは何か
混在コンテンツとは、暗号化された接続で配信されているページの中に、暗号化されていない接続で読み込まれるリソースが混じっている状態を指します。ページ全体がhttps化されていても、画像やスクリプト、動画といった個々の要素はそれぞれ別の通信で読み込まれるため、一部だけhttpの参照が残っていると全体としては安全でない状態になります。ブラウザはこの状態を検知すると、リソースの種類に応じて警告表示やブロックといった対応をとる仕組みになっています。
どうして大事なのか
典型的な原因は、httpからhttpsへの移行作業の際に、CSS内の背景画像指定や外部埋め込みタグなど一部のURLだけ書き換えが漏れることで、移行作業自体は完了していても見落としが起きやすい箇所です。移行から時間が経ってから発覚することも多く、気づかれないまま残ってしまうことがあります。
ここで引っかかるとどうなる
画像程度であれば表示自体はされつつ、アドレスバーの鍵アイコンが警告表示に変わる程度で済むこともあります。一方でスクリプトのように影響の大きいリソースは読み込みそのものがブラウザにブロックされ、ページのレイアウト崩れや機能不全につながることがあります。訪問者の環境によっては、警告表示を見ただけで離脱してしまうこともあります。反対に、HTML内の参照がすべてhttpsまたは相対パスになっていて該当が1件も検出されない状態であれば、鍵アイコンは警告なしで表示され、訪問者にとっての安心材料になります。
直す方法
該当するタグのsrc・href属性を、素材が対応していればhttps://に置き換えます。自サイト内のリソースであれば、プロトコルを固定せず「//example.com/image.jpg」のような相対プロトコル、またはパスのみの相対指定にしておくと再発しにくくなります。外部サービスの埋め込みタグ(広告・SNSウィジェットなど)がhttp固定で配布されている場合は、提供元がhttps版のコードを用意していないか確認します。件数が多い場合は、CMSのデータベース内をhttp://で一括検索して洗い出すと漏れを防げます。
Kotoriではどうやって計測しているか
HTMLソースを取得し、script・link・img・iframe・source・video・audio・embedの各タグに含まれるsrcまたはhref属性の値が「http://」から始まっているものを検出します。ページ全体はhttps://で配信されていても、その中の一部の画像やスクリプト、動画などの参照先だけが暗号化されていないhttp://のURLを指していないかをチェックする仕組みです。1件でも該当すれば混在コンテンツとして検出されます。
セキュリティの他の項目