ホームページ バックエンド開発 PHPチュートリアル ユーザー IP アドレスを取得する一般的な方法と一般的なセキュリティ リスク (HTTP_X_FORWARDED_FOR)_PHP チュートリアル

ユーザー IP アドレスを取得する一般的な方法と一般的なセキュリティ リスク (HTTP_X_FORWARDED_FOR)_PHP チュートリアル

Jul 21, 2016 pm 03:10 PM
for http そして 分析する 住所 安全性 一般 方法 ユーザー 得る プロセス これ ユニバーサル

分析プロセス
これは、ユーザーのIPを取得し、ユーザーの操作行動を記録するために一般的かつ頻繁に使用される、いくつかのプロジェクトからのものです。 ほとんどの友人は、IP アドレスを取得する次の一般的な方法を目にするでしょう。

コードをコピー コードは次のとおりです:

function getIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP']
} else {
$realip = $_SERVER['REMOTE_ADDR'];
return $realip ;
}



这个是网上常见获取,ip函数,用这些值获取IP,我们首先要弄清楚,这些数据是从那个地方传过来的。

IP获取来源

1.'REMOTE_ADDR' 是远端IP,默认来自tcp 连接是,客户端的Ip。可以说,它最准确,确定是,只会得到直接连服务器客户端IP。如果对方通过代理服务器上网,就发现。获取到的是代理服务器IP了。

如:a->b(proxy)->c ,如果c 通过'REMOTE_ADDR' ,只能获取到b的IP,获取不到a的IP了。

另外:该IP想篡改将很难实现,在传递知道生成php server值,都是直接生成的。

2.'HTTP_X_FORWARDED_FOR','HTTP_CLIENT_IP' 为了能在大型网络中,获取到最原始用户IP,或者代理IP地址。对HTTp协议进行扩展。定义了实体头。

HTTP_X_FORWARDED_FOR = clientip,proxy1,proxy2 所有IP用”,”分割。 HTTP_CLIENT_IP 在高级匿名代理中,这个代表了代理服务器IP。既然是http协议扩展一个实体头,并且这个值对于传入端是信任的,信任传入方按照规则格式输入的。以下以x_forword_for例子加以说明,正常情况下,这个值变化过程。

image


分析Bug风险点:

通过刚刚分析我们发现,其实这些变量,来自http请求的:x-forword-for字段,以及client-ip字段。 正常代理服务器,当然会按rfc规范来传入这些值。但是,当一个用户直接构造该x-forword-for值,发送给用户用户,那将会怎么样呢?

image图(1)

第2步,修改x-forword-fox值,我们看看结果

image

 

第三步,我们再修改下看看会怎么样?

image

はは、上記の結果を見ましたか? x-forwarded-for は値を単独で設定できるだけでなく、任意の形式で値を設定することもできます。 このように、任意の値を書き込むことができるフィールドがあるようなものです。そして、サーバーはデータベースを直接読み取り、書き込み、または表示します。これは、入力に対するフィルタリングやテストを行わずにデータ ソースを操作した場合の一般的な結果と同様に、危険をもたらします。 そして隠蔽も容易です。

結論:

上記の getip 関数に加えて、クライアントは IP を自由に偽造でき、任意の形式で IP を渡すことができます。 これにより、2 つの大きな問題が発生します。1 つは、特定のページを設定して IP 制限を課した場合です。 相手は簡単にIPを変更して継続的にページをリクエストすることができます。 次に、この種のデータを直接使用すると、SQL 登録やクロスサイト攻撃などの脆弱性が生じます。 1 つ目に関しては、ビジネスに制限を設定できますが、IP 制限は使用しないことをお勧めします。 2 つ目については、このタイプは巨大なサイバー リスクをもたらす可能性があります。それを正さなければなりません。

安全な getip 関数を取得するには、Getip を変更する必要があります。

このような問題は実際に非常に起こりやすく、私は過去にこれを使って大量の偽投票を騙してきたことがあります。実際、特定の価値観の裏も表も理解している限り、それは隠されています。仕組みを理解すれば、この種のバグを修正するのは非常に簡単になります。

余談ですが、テクノロジーを実行するには 3 つのステップがあります。まず、それを実行して解決する必要があります。次に、なぜそれを実行したいのか、その理由と原則は何なのか、そしてそれをどのように実行するかを考える必要があります。 、他の方法はありますか?もっと自分自身に問いかけてみると、技術的な真実に近づいていることがわかるでしょう。物事を行うことがますます快適になります!

著者: chengmo QQ:8292669

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327104.html技術記事分析プロセスは一部のプロジェクトから提供されており、ユーザーの IP を取得し、ユーザーの操作行動を記録するためによく使用されます。 ほとんどの友人には、IP アドレスを取得する次の一般的な方法が表示されます...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

テクノロジーの発展に伴い、モバイルゲームは人々の生活に欠かせないものになりました。かわいいドラゴンエッグの画像と面白い孵化過程で多くのプレイヤーの注目を集めており、その中でも注目を集めているゲームの一つがモバイル版ドラゴンエッグです。プレイヤーがゲーム内で自分のドラゴンをより適切に育成し成長させることができるように、この記事ではモバイル版でドラゴンの卵を孵化させる方法を紹介します。 1. 適切な種類のドラゴン エッグを選択する プレイヤーは、ゲーム内で提供されるさまざまな種類のドラゴン エッグの属性と能力に基づいて、自分に適したドラゴン エッグの種類を慎重に選択する必要があります。 2. 孵化機のレベルをアップグレードします。プレイヤーはタスクを完了し、小道具を収集することで孵化機のレベルを向上させる必要があります。孵化機のレベルは孵化速度と孵化成功率を決定します。 3. プレイヤーはゲームに参加する必要がある孵化に必要なリソースを収集します。

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) 携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) May 07, 2024 pm 03:34 PM

携帯電話が人々の日常生活において重要なツールになるにつれて、フォント サイズの設定は重要なパーソナライゼーション要件になりました。さまざまなユーザーのニーズを満たすために、この記事では、簡単な操作で携帯電話の使用体験を向上させ、携帯電話のフォントサイズを調整する方法を紹介します。携帯電話のフォント サイズを調整する必要があるのはなぜですか - フォント サイズを調整すると、テキストがより鮮明で読みやすくなります - さまざまな年齢のユーザーの読書ニーズに適しています - フォント サイズを使用すると、視力の悪いユーザーにとって便利です携帯電話システムの設定機能 - システム設定インターフェイスに入る方法 - 設定インターフェイスで「表示」オプションを見つけて入力します。 - 「フォント サイズ」オプションを見つけて、サードパーティでフォント サイズを調整します。アプリケーション - フォント サイズの調整をサポートするアプリケーションをダウンロードしてインストールします - アプリケーションを開いて、関連する設定インターフェイスに入ります - 個人に応じて

携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント) 携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント) May 07, 2024 pm 05:55 PM

スマートフォンの普及に伴い、携帯フィルムは欠かせないアクセサリーの一つとなりました。耐用年数を延ばすには、携帯電話の画面を保護する適切な携帯電話フィルムを選択してください。この記事では、読者が自分に最適な携帯電話フィルムを選択できるように、携帯電話フィルムを購入する際のいくつかのポイントとテクニックを紹介します。携帯電話フィルムの素材と種類を理解する:PET フィルム、TPU など。 携帯電話フィルムは強化ガラスを含むさまざまな素材でできています。 PETフィルムは比較的柔らかく、強化ガラスフィルムは耐傷性に優れ、TPUは耐衝撃性能に優れています。選択する際は、個人の好みやニーズに基づいて決定できます。画面の保護の程度を考慮してください。携帯電話のフィルムの種類によって、画面の保護の程度も異なります。 PETフィルムは主に傷防止の役割を果たしますが、強化ガラスフィルムは落下耐性に優れています。より良いものを選ぶことができます

C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? May 31, 2024 am 11:06 AM

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して​​出力します。 HTTP 応答本文を受信して​​出力します。

Java フレームワークのセキュリティ アーキテクチャ設計は、ビジネス ニーズとどのようにバランスをとる必要がありますか? Java フレームワークのセキュリティ アーキテクチャ設計は、ビジネス ニーズとどのようにバランスをとる必要がありますか? Jun 04, 2024 pm 02:53 PM

Java フレームワーク設計では、セキュリティ ニーズとビジネス ニーズのバランスをとることでセキュリティを実現し、主要なビジネス ニーズを特定し、関連するセキュリティ要件に優先順位を付けます。柔軟なセキュリティ戦略を策定し、脅威に階層的に対応し、定期的に調整します。アーキテクチャの柔軟性を考慮し、ビジネスの進化をサポートし、抽象的なセキュリティ機能を考慮します。効率と可用性を優先し、セキュリティ対策を最適化し、可視性を向上させます。

Google マネージャーでユーザーを追加および管理する方法 Google マネージャーでユーザーを追加および管理する方法 Sep 02, 2024 pm 02:41 PM

Google マネージャーでユーザーを追加および管理するにはどうすればよいですか? Google Chrome は複数のユーザーによるログインをサポートしているため、複数のデバイスでのログインについて心配する必要はありません。ユーザー数が多い場合は、管理を追加する必要があります。友達の中には操作方法がわからない人もいるかもしれません。心配しないでください。エディターが今日、すべての人向けに詳細なステップバイステップのチュートリアルを作成しました。興味がある場合は、エディターにアクセスして見てください。詳しいステップバイステップのチュートリアル手順 1. コンピューターの電源を入れた後、以下の図に示すように、デスクトップにインストールされている Google Chrome アイコンを見つけてダブルクリックして開きます。 2. 下の図に示すように、Google Chrome の右上隅にある 3 つの点のアイコンをクリックします。 3. 以下の図に示すように、Google Chrome のドロップダウン メニューで [設定] オプションをクリックします。 4. 開いた Google Chrome 設定インターフェースで、[チャンネルの管理] をクリックします。

シミを早く消す効果的な方法(シミを素早く簡単に消すスキンケアの秘訣を教えます) シミを早く消す効果的な方法(シミを素早く簡単に消すスキンケアの秘訣を教えます) May 03, 2024 pm 12:01 PM

シミは、首や手の甲などの露出している部分の高齢者の顔に現れる傾向がある一般的な皮膚の問題です。また、見た目に問題を引き起こすだけでなく、老けて見えることもあります。しかし、科学技術の進歩と美容技術の発展により、シミを簡単かつ迅速に除去する方法がたくさんあります。若くて健康な肌を取り戻し、シミを早く解消するために、この記事では効果的なスキンケアのヒントをいくつか紹介します。 1. 紫外線ダメージから積極的に肌を守ることの重要性 シミの主な原因の一つである紫外線を長時間日光にさらさないことが非常に重要です。 2. スキンケア製品を合理的に選択し、抗酸化物質と美白成分を含む製品を使用することで、シミの発生を軽減できます。

Struts 2 フレームワークのセキュリティ構成と強化 Struts 2 フレームワークのセキュリティ構成と強化 May 31, 2024 pm 10:53 PM

Struts2 アプリケーションを保護するには、次のセキュリティ構成を使用できます。 未使用の機能を無効にする コンテンツ タイプ チェックを有効にする 入力を検証する セキュリティ トークンを有効にする CSRF 攻撃を防ぐ RBAC を使用してロールベースのアクセスを制限する

See all articles