ホームページ  >  記事  >  バックエンド開発  >  PHP はカールを使用して IP アドレスとヘッダー情報を偽造します

PHP はカールを使用して IP アドレスとヘッダー情報を偽造します

WBOY
WBOYオリジナル
2016-07-25 08:42:081120ブラウズ
カール、PHP、ヘッダー

curl は強力ですが、偽造できるのは $_SERVER["HTTP_X_FORWARDED_FOR"] のみです。ほとんどの IP アドレス検出プログラムでは、$_SERVER["REMOTE_ADDR"] を偽造するのは困難です。

まずclient.phpのコードです​​

01 $headers['CLIENT-IP'] = '202.103.229.40';
02
$headers['X-FORWARDED-FOR'] = '202.103.229.40';
03
04 $headerArr = 配列();
05 foreach( $headers as $n => $v ) {
06 $headerArr[] = $n .':' ;
07 }
08
09 ob_start(); 10
$ch =curl_init(); 11
curl_setopt ($ch, CURLOPT_URL, "http://localhost/curl/server.php"); 12curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); // IP を構築する
13curl_setopt ($ch, CURLOPT_REFERER, "http://www.163.com/ "); //構築元
14curl_setopt( $ch, CURLOPT_HEADER, 1);
15
curl_exec($ch);
16
17curl_close ($ch)
18 $out = ob_get_contents();
19 ob_clean();
20
21 $out をエコーする
次にserver.php 01関数GetIP(){

02 if(!emptyempty($_SERVER["HTTP_CLIENT_IP"]))
03 $cip = $_SERVER["HTTP_CLIENT_IP"]
04 else if(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"]))
05 $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
06
else if(!emptyempty($_SERVER["REMOTE_ADDR"]))
07
$cip = $_SERVER["REMOTE_ADDR"]
08
その他
09
$cip = "取得できません!";
10 $cip を返す
11 }
12 echo "
アクセスIP: ".GetIP()."
";
13 echo "
アクセス元: ".$_SERVER["HTTP_REFERER"];
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。