この記事では、PHP に実装された制限付き IP 投票プログラムを分析します。参考のために皆さんと共有してください。詳細は次のとおりです:
投票イベントのリクエストを受け取った後、IP 制限を実装して特定の投票機会を制限する必要があります。検索エンジンでキーワード「PHP クライアント IP」を検索したところ、基本的に次のような結果が得られました。 リーリー
このコードは、広く使用されている「discuz」フォーラム ソフトウェアや多くのオープン ソース PHP ソフトウェアで使用されており、一般的な考え方は、最終的なクライアント IP アドレスを取得することです (プロキシを使用してアクセスするユーザーの IP アドレスを取得すること)。 )。多くの成熟したプログラムはこのコードを使用してクライアント IP アドレスを取得するため、このコードをプログラム内で安全に使用できます。幸いなことに、後で同僚が、HTTP_X_FORWARDED_FOR は偽造される可能性があるため、このコードは IP を制限する投票プログラムでは使用できないことを教えてくれました。 X-Forwarded-For がリクエスト ヘッダーに追加されている限り。サーバー側の $_SERVER['HTTP_X_FORWARDED_FOR'] が受け取るのは、このリクエスト ヘッダーの内容です。
プログラムを使って説明してみましょう:
http://localhost/i.php 上記のコードでIPアドレスを取得して出力するという内容です。
リクエストを構築するコードを記述し、この URL をリクエストします: パラメータ X-Forwarded-For がリクエスト ヘッダーに追加されます:
リーリー
このコードを実行すると、サーバー側 (localhost/i.php) が 255.255.255.255 を出力したことがわかります。
これは、クライアント IP を取得するこの方法は、IP を制限する投票活動では推奨されず、クライアントの IP アドレスが偽造される可能性があることを示しています。 $_SERVER['REMOTE_ADDR'] を直接使用すると、ユーザーの最終 IP アドレスは取得されませんが、制限機能は直接的かつ効果的に実現されます。
さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別なトピックをチェックしてください: 「phpcurl の使用法の概要」、「php ソケットの使用法の概要」、「PHP ネットワーク プログラミング スキルの概要」、「PHP 基本構文の入門チュートリアル」 、「php操作」オフィス文書スキルまとめ(word、excel、access、ppt含む)」、「php日付と時刻の使い方まとめ」、「phpオブジェクト指向プログラミング入門講座」、「php文字列(ストリング)の使い方まとめ」 , 「php+mysql 「データベース操作チュートリアル入門」と「PHP における一般的なデータベース操作スキルのまとめ」
この記事が PHP プログラミングのすべての人に役立つことを願っています。