HSTSは、ドメインによって展開されている場合、接続を常にHTTPSに制限しますが、サブドメインに適用するには、 'includeSubDomain'属性が必要です。ポリシー自体で、すべてのサブドメインを含める必要がないのはなぜですか?フラグはどのような理由/制限で設定するように求められますか?
多くの場合、サブドメインはさまざまな目的で使用でき、その結果、おそらくさまざまな機器でホストされているさまざまなWebアプリケーションを使用できます。
すべてのサブドメインのすべてのWebサイトがドメインのポリシーに従う必要があるわけではありません。アプリケーションでのサポートの欠如やSSL証明書がないために、サブドメインのサイトがHTTPSをサポートしていない場合もあります。
したがって、メインドメインにポリシーを自動的に適用すると、サブドメインの問題が発生する可能性があります。
サイト所有者がHSTSを使用するかどうかを決定するのと同じように、サブドメインが影響を受けるかどうかをサイト所有者に決定させるのが最善です。追加の柔軟性により、互換性の障害を減らすことでHSTSの採用を改善できます。
一部のサブドメインサービスには、まだHTTPSサーバーがインストールされていない場合があります。特定のサブドメインでHTTPSを使用することがセキュリティ面で重要ではない場合がいくつかあります。
これが、includeSubDomain
が必須ではない理由を説明しています。
それがなぜデフォルトではないのかと尋ねることができます:
このため、HSTSは元のブラウザでキャッシュをクリアするように訪問者に依頼しない限り元に戻せないことを指摘しておきます。おそらくあなたの訪問者はこれをしないでしょう。
したがって、意図せずに誤ってHSTSを適用した場合、その(サブ)ドメインは、デバイスまたはブラウザーを切り替えるか、ブラウザーのキャッシュをクリアするか、サイト所有者がHTTPSサーバーをインストールするまで、それらの訪問者に対して永続的にダウンします。 (一部のレガシーサービスでは技術的に難しい場合があります)
これがなぜ悪いのかについての私の最も良い例は、ウェブホスティングです。ウェブホストを想像してみてください。somecheapwebhostingexample.comにHSTSと支払いページさえあるとしましょう。そして、ワイルドカード証明書などはありません。
次に、顧客はcustomer1.somecheapwebhostingexample.comとしてサインアップします。ここにデフォルトでサブドメインをデプロイするのは悪い例です。
複数のサブドメインがある他の例がありますが、それらすべてに使用できる証明書はありません。