web-dev-qa-db-ja.com

Non-Authoritative-Reasonヘッダーフィールド[HTTP]

応答ヘッダーNon-Authoritative-Reason : HSTS

私はよく検索しましたが、HSTS(HTTPからHTTPSへのリダイレクト)についての説明を思いつきました。誰でも私を助けることができますか?ちなみに私はChromeを使用しています。

ありがとう

33
jamal

接続しようとしているサーバーは、strict-transport-security(HSTS)を使用して、デフォルトのhttpではなくhttpsのみがこのサイトで使用されるようにします。

つまり、 http://www.servername.com を入力すると、Chromeはこれを https://www.servername.comに自動的に変換します

これは、暗号化されておらず、ハッカーが読み取りおよび変更できるHTTPの使用を防ぐためのセキュリティ機能です。これは、Chrome(要求への応答で送信される特別なHTTPヘッダーを介して)HSTSを使用することを伝えるサーバーによって設定できます。この設定は、Chrome =そのヘッダーのmax-age値で定義された所定の期間。さらに、サイト所有者は、Chrome-を保護するプリロードリストにサイトを送信できます。通常の最初の訪問では、これを有効にするためにヘッダーを受信するためにサイトにアクセスする必要があります。

Chromeはネットワークタブでこれを示しています。アドレスのhttpsバージョンへのリダイレクトでダミーの307応答を作成します。しかし、それは偽の応答であり、サーバーによって生成されません。現実はChromeはリクエストがサーバーに送られる前に内部で行っていました。

サイトのこの設定をクリアするには、ChromeのURLフィールドに次を入力します:chrome://net-internals/#hstsその後、サイトを検索して削除します。また、これをトップレベルドメインに設定し、サブドメインを含めることで、そこから削除する必要がある場合があります。または、サーバー構成を変更して、ヘッダーを最大年齢0で公開し、サイトを再訪してこれをクリアし、ヘッダーの公開を停止することができます。これは、これをクリアするのがそれほど簡単ではない他のブラウザーに役立ちます。

サイトがプリロードリストにある場合、この設定をクリアできないことに注意してください。これはWebブラウザーのコードに埋め込まれているためです。サイトの所有者はプリロードリストから削除するリクエストを送信できますが、これにはChromeのリリースサイクルを完了するために数か月かかり、他のブラウザの定義されたタイムラインはありません。Chromeにはプリロードされた設定を上書きする方法はありません。

55
Barry Pollard

BazzaDPの答えへの追加情報...

応答で返されるNon-Authoritative-Reason : HSTSは、構成したものではなく、Chrome自体です。 Chromeはリクエストをハイジャックするため、Chromeはこの特定のヘッダーも追加して、HSTSが有効であることを通知します。ネットワークタブを見ると、このヘッダーセットを持つ偽の307応答が表示されます。

youがサーバーにStrict-Transport-Securityヘッダーを含めたので、これはすべて行われます。

すべてに参加したい場合は、 HSTSプリロードリスト

3
Jim Aho

MDNによると( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security ):

Strict-Transport-Securityヘッダーは、[〜#〜] http [〜#〜]を使用してサイトにアクセスすると、ブラウザーによって無視されます。これは、攻撃者がHTTP接続を傍受してヘッダーを挿入または削除する可能性があるためです。

HSTSプリロードリスト 展開の推奨事項 言及:

Strict-Transport-Securityすべてのヘッダー[〜#〜] https [〜#〜]応答

HTML5 Boilerplate は、Strict-Transport-Security HTTPS経由(Apacheで):

# Set 'Strict-Transport-Security' over HTTPS only!
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_Host} ^www\.(.+)$ [NC]
    RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L]
</IfModule>
0
Malvoz