首页 > 开发 > PHP > 正文

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

2024-05-04 21:50:01
字体:
来源:转载
供稿:网友

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

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. //Vevb.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); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表