web-dev-qa-db-ja.com

X-Forwarded-Forヘッダーの最後のプロキシを偽装することは可能ですか?

X-Forwarded-Forヘッダーを偽装するために、firefoxプラグイン https://addons.mozilla.org/en-US/firefox/addon/x-forwarded-for-header/ を使用しています8.8.8.8

次のphpページの場合:

echo $_SERVER['REMOTE_ADDR']  . '<br />'; 
echo $_SERVER['HTTP_X_FORWARDED_FOR']  . '<br/>' . '<br />'; 

インスタンスのIPアドレスからインスタンスにアクセスすると、次の出力が表示されます。

72.14.255.255
8.8.8.8

インスタンスが存在するロードバランサーアドレスからインスタンスにアクセスすると、次の出力が表示されます。

10.173.25.72
8.8.8.8, 72.14.255.255

最初の値は、Elastic Load BalancerのローカルIPです。

X-Forwarded-Forヘッダーのフォーマットはそのようなものなので、 http://en.wikipedia.org/wiki/X-Forwarded-For

X-Forwarded-For: client, proxy1, proxy2

最後のプロキシはスプーフィングできないと想定しても安全ですか?

6
user784637

ロードバランサーは、ヘッダーの「最新」の部分を設定します。

ロードバランサー(およびサーバーとロードバランサーの間の接続)を信頼してヘッダーをTCP接続のもう一方の端にあるIPアドレスとして設定すると、信頼できます。ヘッダーの最後のエントリは、接続のソースの正確な表現です(ロードバランサーの観点から)。

8
Shane Madden

X-Forwarded-Forヘッダーフィールドの値は、クライアント側で設定できます。これは、X-Forwarded-Forスプーフィングとも呼ばれます。ただし、Web要求がプロキシサーバー(匿名性の低い非エリートプロキシサーバー)を介して行われた場合、プロキシサーバーはクライアント(ユーザー)のIPアドレスを追加してX-Forwarded-Forフィールドを変更します。これにより、X-Forwarded-Forフィールドに2つのコンマ区切りのIPアドレスが生成されます。したがって、Webサーバーは、必要に応じて、プロキシサーバーの使用を検出し、スプーフィングを検出する可能性があります。次の記事では、これについてPythonコードサンプル Spoof X-Forwarded-For で説明しています。したがって、(匿名性の高い)エリートプロキシを使用すると役立つ場合があります。クライアントの実際のIPアドレスを非表示にします。

1
Guest