2017-11-02 10 views
0

私は、koaモジュールを使用してノードアプリケーションを起動するPM2によって公開されるポートを開くElastic Load Balancerにあるパブリックルートのスタックを分析しています。現時点では、IPはログに記録され、それはX-Forwarded-Forヘッダーのみに依存します。このヘッダがcurlを使用して手動で作成された場合、アプリケーションはそれをIPアドレスとして書き込みます。ELBとノードを使用してXフォワードされたスプーフィングを防止する

このヘッダーのスプーフィングを防ぎ、手動で挿入されたヘッダーを無視するようにAWSのELBを設定する簡単な方法はありますか、または訪問者の実際のIPアドレスを取得するためのスプーフィング可能なヘッダーよりも良い方法がありますか? docによれば

答えて

2

クライアントからの要求が既にX-Forwarded-Forヘッダーを含んでいる場合、弾性ロードバランシングは、ヘッダ値の最後に、クライアントのIPアドレスを付加します。この場合、リストの最後のIPアドレスはクライアントのIPアドレスです。

したがって、最後のIPは常に実際のIPです。

+0

最後のIPは、koaの 'ctx.request.ip'を呼び出すときに返される詐称されたIPです。これは、AWSのELBによって満たされています。これは、最後の 'X-Forwarded-IP '(この場合はスプーフィングされています)を配列の最後に設定している可能性があります。 – SomeGuyOnAComputer

+2

こんにちは、こんにちは、順序を逆転する? '上流からの順序 - > downstream' [ref](http://koajs.com/#request-ips) –

+0

@SomeGuyOnAComputer X-Forwarded-forが追加されるのは標準的な動作です。ロードバランサとプロキシによって。一番右の未知のアドレス(あなた宛て)は、常にクライアントIPであることを信頼したいものであり、その左側のものは「情報」とみなすべきです(つまり、直接上流のピアが実際にこれを提供しますが、偽造される可能性があります)。 –

関連する問題