您的位置:首页 > Web前端

PHP伪造referer访问地址的三种方法

2017-04-06 16:08 2086 查看
CURL方式:

[php] view
plain copy

 print?

$ch = curl_init();  

   

curl_setopt ($ch, CURLOPT_URL, "http://www.yyyy.com");  

   

curl_setopt ($ch, CURLOPT_REFERER, "http://www.xxxx.com/");  

   

curl_exec ($ch);  

   

curl_close ($ch);  



 
SOCKET方式:

[php] view
plain copy

 print?

$server = 'www.yyyy.com';  

   

$host = 'www.yyyy.com';  

   

$target = 'index.php';  

   

$referer = 'http://www.xxxx.com/'; // Referer  

   

$port = 80;  

   

$fp = fsockopen($server, $port, $errno, $errstr, 30);  

   

if (!$fp){  

   

  echo "$errstr ($errno)\n";  

   

}else{  

   

$out = "GET $target HTTP/1.1\r\n";  

   

$out .= "Host: $host\r\n";  

   

$out .= "Referer: $referer\r\n";  

   

$out .= "Connection: Close\r\n\r\n";  

   

fwrite($fp, $out);  

   

while (!feof($fp)){  

   

echo fgets($fp, 128);  

   

}  

   

fclose($fp);  

   

}  

file_get_contents方法:

[php] view
plain copy

 print?

$opt=array('http'=>array('header'=>"Referer: $refer"));   

   

$context=stream_context_create($opt);   

   

$file_contents = file_get_contents($url,false, $context);  

通过上面的代码,我们就把referer地址伪装为http://www.xxxx.com,你可以写一段代码:
$_SERVER['HTTP_REFERER'];
查看到这个referer地址,就是这么简单,所以referer也不是什么可靠的数据了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: