5

Rack ミドルウェア フィルターでは、call メソッドが env ハッシュ変数を取ることがわかっています。誰かの Rack ミドルウェア コードを調べていると、

 env['HTTP_X_FORWARDED_HOST']

誰かが HTTP_X_FORWARDED_HOST の意味を説明できますか? リクエストの発信元のホストですか?

4

1 に答える 1

21

これは非常に古い質問ですが、ブラウザーとサーバーの間にプロキシ (または複数のプロキシ) がある場合は 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 を偽装する可能性があるため、それを想定する際には注意が必要です。

于 2013-12-03T20:22:35.817 に答える