ホームページ  >  記事  >  バックエンド開発  >  PHP は Curl を使用してクライアント ソース IP を偽造する_PHP チュートリアル

PHP は Curl を使用してクライアント ソース IP を偽造する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:44:001238ブラウズ

インターネット上で Curl を使用してクライアントのソース IP を偽装する方法をたくさん見つけました。その後、この機能を使用した結果を検証しました。 これは強力です。クライアントのソース IP だけでなく、プロキシ IP も偽造できます。以下のコードを見てみましょう。

一般に、サーバーがクライアントの IP を取得する場合は 3 つの状況があります
1. プロキシを使用しない場合:


#http://www.bKjia.c0m
REMOTE_ADDR=顧客IP
HTTP_VIA = 空
HTTP_X_FORWARDED_FOR = 空

2. プロキシを使用し、プロキシ サーバーがクライアント IP を転送するように設定されている場合:

REMOTE_ADDR = プロキシサーバーのIP
HTTP_VIA = プロキシサーバーのIP
HTTP_X_FORWARDED_FOR = 顧客 IP

HTTP_VIA および HTTP_X_FORWARDED_FOR の値は、ヘッダー ヘッダーを追加することでカスタマイズでき、サービス

の場合、これを通じてクライアント IP を非表示にすることができます。

X_FORWARDED_FOR はサーバー側で有効になっています。

効果をテストし、サーバー側で新しい PHP プログラムを作成します:

1.php は、index.php をリクエストします。
1.phpコード:

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

$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/index.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));

//IPを構築する

curl_setopt($ch, CURLOPT_REFERER, "http://www.bKjia.c0m/ "); //構築元
curl_setopt($ch, CURLOPT_HEADER, 1);
$out =curl_exec($ch);
curl_close($ch);

2.phpのコードは以下の通りです

コードは次のとおりですコードをコピー偽造は成功しました。これは、「チケットを偽造」する友人に適切な IP 変更ソリューションを提供しますか? ! ははは。
関数 getClientIp() {
If (!empty($_SERVER["HTTP_CLIENT_IP"]))
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if (!empty($_SERVER["REMOTE_ADDR"]))
$ip = $_SERVER["REMOTE_ADDR"];
それ以外
$ip = "エラー";
$ip を返します;
}

echo "IP: " . getClientIp() . echo "リファラー: " . $_SERVER["HTTP_REFERER"];


echo "IP: " . getClientIp() . echo "リファラー: " . $_SERVER["HTTP_REFERER"];


結果:
HTTP/1.1 200 OK 日付: Wed, 03 Apr 2013 06:20:42 GMT サーバー: Apache/2.2.22 (Win32) PHP/5.3.13

X-Powered-By: PHP/5.3.13 Content-Length: 44 Content-Type: text/html
IP: 8.8.8.8

リファラー: http://www.bKjia.c0m/



curl関数については以下を参照してください

curl関連機能一覧: curl_init — CURL セッションを初期化します

curl_setopt — CURL 呼び出しのオプションを設定します

curl_exec — CURL セッションを実行します
curl_close — CURL セッションを閉じる
curl_version — 現在の CURL バージョンを返します
1>curl_init — CURL セッションを初期化します


http://www.bkjia.com/PHPjc/633127.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/633127.html技術記事インターネット上で Curl を使用してクライアント ソース IP を偽造する方法をたくさん見つけました。後で、この関数の使用が非常に強力であることを確認しました。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。