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

CURL方式:
[php]  view plain  copy
 print ?
  1. $ch = curl_init();  
  2.    
  3. curl_setopt ($ch, CURLOPT_URL, "http://www.yyyy.com");  
  4.    
  5. curl_setopt ($ch, CURLOPT_REFERER, "http://www.xxxx.com/");  
  6.    
  7. curl_exec ($ch);  
  8.    
  9. curl_close ($ch);  


 

SOCKET方式:
[php]  view plain  copy
 print ?
  1. $server = 'www.yyyy.com';  
  2.    
  3. $host = 'www.yyyy.com';  
  4.    
  5. $target = 'index.php';  
  6.    
  7. $referer = 'http://www.xxxx.com/'; // Referer  
  8.    
  9. $port = 80;  
  10.    
  11. $fp = fsockopen($server$port$errno$errstr, 30);  
  12.    
  13. if (!$fp){  
  14.    
  15.   echo "$errstr ($errno)\n";  
  16.    
  17. }else{  
  18.    
  19. $out = "GET $target HTTP/1.1\r\n";  
  20.    
  21. $out .= "Host: $host\r\n";  
  22.    
  23. $out .= "Referer: $referer\r\n";  
  24.    
  25. $out .= "Connection: Close\r\n\r\n";  
  26.    
  27. fwrite($fp$out);  
  28.    
  29. while (!feof($fp)){  
  30.    
  31. echo fgets($fp, 128);  
  32.    
  33. }  
  34.    
  35. fclose($fp);  
  36.    
  37. }  
file_get_contents方法:
[php]  view plain  copy
 print ?
  1. $opt=array('http'=>array('header'=>"Referer: $refer"));   
  2.    
  3. $context=stream_context_create($opt);   
  4.    
  5. $file_contents = file_get_contents($url,false, $context);  

通过上面的代码,我们就把referer地址伪装为 http://www.xxxx.com,你可以写一段代码:
$_SERVER['HTTP_REFERER'];
查看到这个referer地址,就是这么简单,所以referer也不是什么可靠的数据了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值