php中图片防盗链如何绕过的方法

[复制链接]
查看98 | 回复1 | 2019-1-22 15:42:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  很多php开发的网站中,都使用了图片防盗链技术,这样做的好处是很多的,比如节省带宽。但有时我们需要某张别人的图片,此时可以参考下本文介绍的方法。

  假设有这样一张图片:
  1. https://img0.pconline.com.cn/pconline/1901/04/12194819_02_thumb.jpg
复制代码

  直接链接时无法显示真实图片(除chrome浏览器外)。
  显示效果如下:



  解决方法如下:
1、将以下代码建立一个php文件,存储为:showpic.php
  1. <?php  
  2.     $url = $_GET["url"];  
  3.     //$url = str_replace("http:/","http://",$url);   
  4.     $dir = pathinfo($url);  
  5.     $host = $dir['dirname'];  
  6.     $refer = $host.'/';  
  7.       
  8.     $ch = curl_init($url);  
  9.     curl_setopt ($ch, CURLOPT_REFERER, $refer);  
  10.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//激活可修改页面,Activation can modify the page  
  11.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  12.     curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);  
  13.     $data = curl_exec($ch);  
  14.     curl_close($ch);  
  15.       
  16.     $ext = strtolower(substr(strrchr($img,'.'),1,10));  
  17.     $types = array(  
  18.                 'gif'=>'image/gif',  
  19.                 'jpeg'=>'image/jpeg',  
  20.                 'jpg'=>'image/jpeg',  
  21.                 'jpe'=>'image/jpeg',  
  22.                 'png'=>'image/png',  
  23.     );  
  24.     $type = $types[$ext] ? $types[$ext] : 'image/jpeg';  
  25.     header("Content-type: ".$type);  
  26.     echo $data;   
  27. ?>
复制代码

2、将showpic.php文件存放在网站根目录,然后图片调用方式为:
  1. http://www.yydy.org:5/showpic.php?url=https://img0.pconline.com.cn/pconline/1901/04/12194819_02_thumb.jpg
复制代码

回复

使用道具 举报

yydy | 2023-3-29 15:41:58 | 显示全部楼层
时隔多年依然有效!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则