2012-01-20 9 views
1

私はJavaを使ってプロジェクトに取り組んでいます.IPアドレスはクライアント/ユーザのIDになります。だから私は1つの問題に直面しています。ユーザーがホストIDを偽装して、ユーザーの誤ったアイデンティティにつなげることができる場所です。だから、誰でも知っている、どのようにホストがプロキシを使用しているかどうかを検出するか?Java/JSPでプロキシを検出する

InetAddress thisIp = InetAddress.getLocalHost(); 

私は上記のコードを使用してホストのIPアドレスを検出しています。

答えて

2

これを100%確実に確認することはできませんが、ほとんどのプロキシをカバーするには、X-Forwarded-Forリクエストヘッダーの存在を確認することができます。

if (request.getHeader("X-Forwarded-For") != null) { 
    // Client is likely using a proxy. 
} 

これに関する標準はありません。各プロキシには、独自の追加/カスタムヘッダーセットがあります。取得したリクエストヘッダーをログに記録し、特定のプロキシによって設定されているヘッダーを調べて、それに応じてコードを変更することができます。繰り返しますが、これを確実に確認することはできません。一部のプロキシには、追加のヘッダーがまったくない場合もあります。 getRemoteAddr()を確認できるように、「よく知られている」プロキシのIPアドレスのリストを維持する必要があります。具体的な問題への無関係


あなたはでこれをタグ付けされたように、私はJSP内のJavaコードを書くことが貧弱な練習であることを追加します。通常、これは通常のJavaクラス(servletまたはfilterなど)で行います。

+0

プロキシIPアドレスとJavaライブラリの公開ブラックリストがあります。 https://github.com/ip2location/ip2proxy-java –

関連する問題