すべての解説
深刻度:高セキュリティヘッダー

HTTP Strict Transport Security(HSTS)を解説

HTTP Strict Transport Security(HSTS)は、あなたのサイトに常にHTTPSでのみ接続するようブラウザに指示する応答ヘッダーです。一度認識すると、ブラウザはポリシーの有効期間中、あなたのドメインへのプレーンHTTP接続を拒否します。

これは何か

HSTSは Strict-Transport-Security ヘッダーで配信されます。例:max-age=31536000; includeSubDomains; preload。max-age は、ブラウザがこのルールを覚えておく時間(秒)です。

最初のHTTPSアクセス以降、ブラウザは以後のすべてのリクエストを自動的にHTTPSにアップグレードします。ユーザーがうっかり安全でないバージョンにアクセスすることはなく、攻撃者が接続をHTTPに戻すこともできません。

なぜ重要か

HSTSがないと、ユーザーの最初のリクエスト(yourdomain.com と入力)はプレーンHTTPで送られ、HTTPSへのリダイレクトが起きる前に傍受される可能性があります——典型的なSSLストリッピング攻撃です。

弱いHSTSポリシーは保護を損ないます。短い max-age は強制の有効期間を縮め、includeSubDomains を省くと、すべてのサブドメインがダウングレードにさらされたままになります。

直し方

強力なヘッダーを送る

長い max-age(1年)を使い、サブドメインもカバーし、preload にも登録しましょう。

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
まず全体でHTTPSを確認する

includeSubDomains と preload を追加するのは、すべてのサブドメインが有効なHTTPSを配信していることを確認してからにしてください。さもないと、準備ができていないサブドメインからユーザーを締め出してしまう可能性があります。

preloadリストに登録する

ヘッダーに 'preload' が含まれたら、hstspreload.org でドメインを登録し、ブラウザが最初のアクセスからHTTPSを強制するようにしましょう。

FAQ

max-age はどれくらいにすべきですか?

少なくとも15552000(6か月)です。31536000(1年)が一般的な推奨値で、preloadリストには必須です。

HSTSで自分のサイトから締め出されることはありますか?

後からHTTPで配信する必要が生じたり、HTTPSのないサブドメインがあったりする場合に限ります。includeSubDomains や preload を有効にする前に、十分にテストしてください。

あなたのアプリは大丈夫ですか?

AppSafeなら、この問題を含む数十項目を1回の無料スキャンでチェックできます。

アプリを無料でスキャン