Rack ミドルウェア フィルターでは、call メソッドが env ハッシュ変数を取ることがわかっています。誰かの Rack ミドルウェア コードを調べていると、
env['HTTP_X_FORWARDED_HOST']
誰かが HTTP_X_FORWARDED_HOST の意味を説明できますか? リクエストの発信元のホストですか?
Rack ミドルウェア フィルターでは、call メソッドが env ハッシュ変数を取ることがわかっています。誰かの Rack ミドルウェア コードを調べていると、
env['HTTP_X_FORWARDED_HOST']
誰かが HTTP_X_FORWARDED_HOST の意味を説明できますか? リクエストの発信元のホストですか?
これは非常に古い質問ですが、ブラウザーとサーバーの間にプロキシ (または複数のプロキシ) がある場合は HTTP_X_FORWARDED_HOST が使用されます。この設定がある場合:
End User -> Proxy A -> Proxy B -> Server
次に、エンド ユーザーが (ホスト ヘッダーを使用して) 要求を行うと、プロキシ A がそれを受け取ります。独自のホストを設定し、エンド ユーザー ホストを X-Forwarded-Host に配置してから、プロキシ B にリクエストを送信します。プロキシ B も同じことを行い、プロキシ A のホストを X-Forwarded-Host に追加します (したがって、ヘッダーは次のようになります)。 EndUserHost、ProxyAHost など) を作成し、独自のホストを設定します。サーバーは、プロキシ B の Host ヘッダーと、次のような値を持つ X-Forwarded-Host ヘッダーを含むリクエストを受信します"EndUserHost,ProxyAHost"
。
いくつかの情報: http://hustoknow.blogspot.com/2011/02/x-forwarded-for-vs-httpxforwardedhost.html
注意すべき点: エンドユーザーは X-Forwarded-Host を偽装する可能性があるため、それを想定する際には注意が必要です。