当前位置:首页 > PHP教程 > php高级应用 > 列表

php模拟reffer破解防止盗用图片

发布:smiling 来源: PHP粉丝网  添加日期:2018-05-31 10:23:41 浏览: 评论:0 

当我们需要调用其他网站图片的时候,其他网站的图片往往显示一个不显示,但是单独放在浏览器访问,却又可以。

php模拟reffer破解防止盗用图片:

  1. <?php 
  2. error_reporting(0); 
  3.  
  4. $HOST = "java-er.com"
  5.  
  6. require 'class/db.php'
  7. header("Content-type:   image/png"); 
  8. //phpfensi.com 
  9. $id = $_GET["id"]; 
  10. $sql = "select * from blog where id=$id"
  11. $row = $db->queryRow($sql); 
  12. $url = $row["url"]; 
  13. //读出来的URL为http://www.sina.com.cn/aaad.html 一会充当reffer 
  14.  
  15. $imgurl = $_GET["url"]; 
  16.  
  17. //提取图片domain 
  18. $domain = preg_replace("/^http:\/\/(.+?)\/.+?$/","$1",$imgurl); 
  19.  
  20. //兼容原来的网站 比如/2.jpg 
  21. if($url==""){ 
  22.     $url = $imgurl
  23.  
  24. if(!preg_match("/^http:\/\/.*?$/"$imgurl)){ 
  25.     $domain = $HOST
  26.     $imgurl = "http://".$HOST."/".$imgurl
  27.     $url = $imgurl
  28.  
  29. //兼容原来的网站 END 
  30.  
  31. //image.58.com/showphone.aspx?t=v55&v=0926DC20FE0C323BH29559C838D7CB65E 
  32.  
  33. $fp = fsockopen("$domain", 80, $errno$errstr, 30);     
  34. if (!$fp) {     
  35.     echo "ERR:$errstr ($errno)<br />\n"
  36. else {     
  37.   $out = "GET $imgurl HTTP/1.1\r\n";     
  38.   //$out = "GET / HTTP/1.1\r\n";     
  39.     $out .= "Accept:*/*\r\n";     
  40.     $out .= "Host: $domain\r\n";     
  41.     $out .= "Referer: $url\r\n";     
  42.     $out .= "Connection: Close\r\n\r\n";     
  43.   $str = ""
  44.     fwrite($fp$out); 
  45.     while (!feof($fp)) {     
  46.         $str.=fgets($fp, 128);     
  47.     }     
  48.   $str = trimHeader($str); 
  49.   echo $str
  50.     fclose($fp);     
  51. }    
  52.  
  53. function   trimHeader($content){ 
  54.         $array=split("\r\n\r\n",$content); 
  55.         return   $array[1]; 
  56.  
  57. ?> 
  58.  
  59. //自己网页输入图片内容的时候自动替换 
  60. $c = preg_replace("/<img src=\"(.+?)\".*?>/is","<img src=\"/showimg_article.php?id=$id&url=$1\" />",$c); 

Tags: php模拟 reffer 防止盗链

分享到: