web-dev-qa-db-ja.com

HSTSは混合コンテンツをどのように処理しますか?

サーバーにSSL証明書を正しく実装しているかどうかを SSL Server Test で確認しました。ランキングで等級[〜#〜] a [〜#〜]を取得しましたが、を取得できますA +[〜#〜] hsts [〜#〜] を有効にした場合。少し調べたところ、GoogleがHSTSをランキング要素として扱う可能性があることがわかりました。したがって、SEOに関しては関連があるようです。 HSTSを実装する前に、いくつか質問があります。

質問1

私のサイトで、外部のJavaScriptがhttp(httpsではなく)経由で画像などをロードするとどうなりますか? HSTSは、ページ全体のロードを妨げるか、特定の「安全でない」コンテンツのみをブロックしますか?

質問2

現時点(HSTSなし)では、リソースがhttp経由でロードされると、「混合コンテンツ」の警告が表示されます。 HSTSがアクティブ化されている場合、「混合コンテンツ」は実際に存在しますか?

7
Sr. Schneider

HSTSは混合コンテンツをまったく処理しようとしません。ブラウザがHTTP URLを読み込もうとするたびに、ブラウザがHTTPSへの内部307リダイレクトを実行するかどうかを制御するだけです。混合コンテンツの警告はブラウザの機能であり、現在のすべてのブラウザがそれを実行しています(Mozilla Firefox 23以降、Google Chrome 21以降、Internet Explorer 10以降、最初からEdge ... )。<script>などの混合コンテンツ警告ブロックは<iframe>ではなく<img>をブロックします。

言及されているすべてのブラウザーでの混合コンテンツの警告は、コンテンツをロードする前、つまりHSTSリダイレクトの前にもチェックされます。これは自然に見えるだけで、テストも簡単です。デフォルトでは、プレーンHTTPを使用してもすべての外部画像が読み込まれ、スクリプトとiframeに対してのみ混合コンテンツの警告が表示されます。

Mixed content without HSTS

HSTSは、HSTS対応ドメインからの画像がプレーンHTTPを使用してロードされ、307 Internal Redirectが実行される状況のみを変更します。注目に値する:これは、混合コンテンツの警告が含まれていない状況です。

Mixed content with HSTS

したがって、HSTSは混合コンテンツの問題のクイックフィックスとして機能しません

  • ドメイン自体であっても、サイトのhttp:// URLを修正する必要があります。
  • 信頼できないソースから外部スクリプトを読み込まないようにする必要があります。
    • サードパーティがHSTSを有効にしていない場合でも、中間者攻撃に対して脆弱です。
    • サードパーティがさらに外部ソースからコンテンツをロードする可能性があり、これはそれらすべてにも当てはまります。
    • 外部コンテンツサイトがクラックされたり、悪意のある活動を行ったりする可能性があります。
13
Esa Jokinen

これに対する答えは、参照するスクリプトがHSTSが有効になっているドメインでホストされているかどうかに依存すると思います。

例えば。 mydomain.comからコンテンツを提供し、このドメイン(および場合によってはサブドメインも)に対してHSTSを有効にするが、参照するスクリプトおよびその他の混合コンテンツは、HSTSを有効にしないotherdomain.comから提供される場合混合コンテンツが可能であり、ブラウザは引き続きこれについて警告します。

HSTSが停止する(そして混合コンテンツの修正に役立つ)のは、同じドメイン上のHTTP経由でリンクされているリソースであり、構成によってはサブドメインである可能性があります-これらはHTTPSに自動的に「アップグレード」されるためです。

3
David

これは設計によるものです。HSTSが機能している場合、適切な画像(HTTPSを介したチェックマーク)を取得し、そうでない場合は、HTTPを介したXマークを取得します。

うまくいけば、ブラウザはHSTS経由でHTTPSにアップグレードされたコンテンツに対して混合コンテンツの警告を表示しなくなります。 :)

0
amirah ara