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
最後のプロキシはスプーフィングできないと想定しても安全ですか?
ロードバランサーは、ヘッダーの「最新」の部分を設定します。
ロードバランサー(およびサーバーとロードバランサーの間の接続)を信頼してヘッダーをTCP接続のもう一方の端にあるIPアドレスとして設定すると、信頼できます。ヘッダーの最後のエントリは、接続のソースの正確な表現です(ロードバランサーの観点から)。
X-Forwarded-Forヘッダーフィールドの値は、クライアント側で設定できます。これは、X-Forwarded-Forスプーフィングとも呼ばれます。ただし、Web要求がプロキシサーバー(匿名性の低い非エリートプロキシサーバー)を介して行われた場合、プロキシサーバーはクライアント(ユーザー)のIPアドレスを追加してX-Forwarded-Forフィールドを変更します。これにより、X-Forwarded-Forフィールドに2つのコンマ区切りのIPアドレスが生成されます。したがって、Webサーバーは、必要に応じて、プロキシサーバーの使用を検出し、スプーフィングを検出する可能性があります。次の記事では、これについてPythonコードサンプル Spoof X-Forwarded-For で説明しています。したがって、(匿名性の高い)エリートプロキシを使用すると役立つ場合があります。クライアントの実際のIPアドレスを非表示にします。