2016-06-22 5 views
0

におけるいくつかのIPアドレスを示し、なぜ私は二つの異なるサーバーにプロキシサーバーを見つけるために、同じコードを入れているが、私のサーバーの一つが、これは私がすべてのサーバー変数を印刷し、私はそれを見ることができるプロキシserver.Finallyで示していますHTTPヘッダーにHTTP_X_FORWARDED_FORがあります。なぜこれが起こるのですか?私は見つけるために使用HTTP_X_FORWARDED_FORは私のサーバー

コードが

<?php 

ある場合($ _SERVER [ 'HTTP_X_FORWARDED_FOR'] || $ _SERVER [ 'HTTP_X_FORWARDED'] || $ _SERVER [ 'HTTP_FORWARDED_FOR'] || $ _SERVER [」 HTTP_CLIENT_IP '] || $ _SERVER [' HTTP_VIA '] || in_array($ _ SERVER [' REMOTE_PORT ']、アレイ(8080,80,6588,8000,3128,553,554))|| @fsockopen($ _ SERVER [' REMOTE_ADDR」 ]、80、$ errnoに、$ errstrは、2))

{

echo "Proxy detected"; 
    //Proxy detected' 
} 

else 
{ 
    echo "Proxy not detected"; 
    //No Proxy detected 
} 

? >

答えて

0

X-転送先については、典型的には、多くの理由のために挿入されます。

  1. サーバーがリバースプロキシの背後にある場合は、そのリバースプロキシは、バックエンドサーバーに元のクライアントのIPを特定するために、X-転送さ-のために挿入するために、それが一般的です。

  2. クライアントが企業プロキシ(共通)の背後にある場合、そのプロキシは、理由により任意の数のXフォワード-FORを挿入することができます。それは内部IPアドレスを効果的に漏洩するので通常は気にならないが、サイトで使用されているいくつかの連鎖したプロキシがあると一般的に起こる。

  3. クライアントがプロキシがヘッダーを挿入することができるインターネット上でホストされているオープンプロキシの背後にある場合。

プロキシもViaヘッダーを追加する必要がありますが、一般的にはそうではありません。

+0

私はまた、いくつかのクライアントが、その中にリバースプロキシ(それらが接続されている、例えばIP)のIPとX-転送さ-用を追加することによって、いくつかのリバースプロキシ制限を回避しようと見てきました。おそらく、バックエンドに昇格された特権を与えようとする。適切に構成されたリバースプロキシは、クライアントが提供するXFFヘッダーを削除する前に、必ずそれを削除する必要があります。 – Adrien

関連する問題