PHP5 はプロキシ アクセスを禁止します
プロキシ サーバーは、ユーザーがターゲット Web サイトに直接接続することを回避できるツールです。プロキシ サーバーは特定の状況では非常に役立ちますが、悪用される可能性もあります。悪意のあるユーザーの多くは、プロキシ サーバーを使用して、実際の IP アドレスをオンライン追跡の脅威から隠します。この悪用はサイトのセキュリティと信頼性に脅威をもたらす可能性があるため、多くの Web サイト管理者はプロキシ サーバーによるサイトへのアクセスを許可していません。この記事では、PHP5でプロキシサーバーへのアクセスを無効にする方法を説明します。
なぜプロキシ アクセスを禁止するのでしょうか?
プロキシ サーバーによる Web サイトへのアクセスを禁止する必要がある理由はいくつかあります。その理由のいくつかを次に示します:
プロキシ アクセスを無効にするにはどうすればよいですか?
PHP5 を使用して、プロキシ サーバー アクセスを無効にするコードを作成します。完全なコードは次のとおりです。
if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip_address = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip_address = $_SERVER['REMOTE_ADDR']; } $proxy_headers = array( 'HTTP_VIA', 'HTTP_X_FORWARDED_FOR', 'HTTP_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED', 'HTTP_CLIENT_IP', 'HTTP_FORWARDED_FOR_IP', 'VIA', 'X_FORWARDED_FOR', 'FORWARDED_FOR', 'X_FORWARDED', 'FORWARDED', 'CLIENT_IP', 'FORWARDED_FOR_IP', 'HTTP_PROXY_CONNECTION' ); foreach ($proxy_headers as $header) { if (array_key_exists($header, $_SERVER) && !empty($_SERVER[$header])) { header('HTTP/1.0 403 Forbidden'); exit(); } }
上記のコードは、訪問者の IP アドレスを取得し、HTTP ヘッダーにプロキシ サーバー関連の情報があるかどうかを確認します。存在する場合は、HTTP 応答コードを 403 Forbidden に設定し、スクリプトを終了します。
まとめ
この記事では、PHP5 でプロキシサーバーへのアクセスを無効にする方法を紹介しました。 Web サイトのセキュリティと信頼性が損なわれる可能性があるいくつかの理由について説明しました。最後に、HTTP ヘッダー情報を確認し、プロキシ サーバーへのアクセスを無効にすることができる PHP コードを提供します。あなたが PHP 開発者で、プロキシ サーバーに関連する問題に対処している場合は、この記事が役立つはずです。
以上がphp5でプロキシアクセスを無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。