使用CURL伪造来源网址与IP_PHP教程

WBOY
Libérer: 2016-07-13 10:33:32
original
1070 Les gens l'ont consulté

很多投票都有对来路的网址和IP进行验证,但是使用CURL可以伪造成任意的网址与IP,以绕过一些简单的验证,下面举一个简单的例子。

程序运行之前,请确保 php.ini 中 extension=php_curl.dll 没有被注释掉。

test.php

<?php
	$ch = curl_init();  
	curl_setopt($ch, CURLOPT_URL, "http://localhost/test_2.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.com/ ");   //构造来路  
	curl_setopt($ch, CURLOPT_HEADER, 1);  
	$out = curl_exec($ch);  
	curl_close($ch); 
?>
Copier après la connexion

test.php 会向 test_2.php 发送请求。

<?php
	function 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"];  
		else  
			$ip = "err";  
		return $ip;  
	}
	  
	echo "<br />IP: " . getClientIp() . "";  
	echo "<br />referer: " . $_SERVER["HTTP_REFERER"]; 
?>
Copier après la connexion

程序运行结果如下:

HTTP/1.1 200 OK Date: Tue, 01 Nov 2011 12:20:06 GMT 
Server: Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 
OpenSSL/0.9.8i PHP/5.2.9 X-Powered-By: PHP/5.2.9 
Content-Length: 53 Content-Type: text/html 
IP: 8.8.8.8
referer: http://www.bkjia.com/
Copier après la connexion

看到了吧,IP和地址可以随意换,对于很多投票机制不完善的投票功能都可以使用这个进行刷票了。

顺便说一下,关于真实IP的事情。

一般获得用户IP都是使用$_SERVER['REMOTE_ADDR']这个环境变量,但是此变量只会纪录最后一个主机IP,所以当用户浏览器有设定Proxy时,就无法取得他的真实IP。

这时可以使用另一个环境变量$_SERVER['HTTP_X_FORWARDED_FOR'] ,它会纪录所经过的主机IP,但是只有在用户有透过Proxy时才会产生,所以可以像以下这样写来取得使用者真实IP。

<?php  
if ( empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) 
{  
	$myip = $_SERVER['REMOTE_ADDR'];  
} 
else  
{  
    $myip = explode( ',' , $_SERVER['HTTP_X_FORWARDED_FOR']);  
    $myip = $myip [0];  
}  
echo $myip;  
?>  
Copier après la connexion

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752466.htmlTechArticle很多投票都有对来路的网址和IP进行验证,但是使用CURL可以伪造成任意的网址与IP,以绕过一些简单的验证,下面举一个简单的例子。 程序...
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!