图片反防盗链

1.反防盗链解决

经常遇到一个图片在本网站里打开没问题,外部引用到自己网站就嘎了!只能手动挨个下载上传。
今天总结尝试下图片防盗链破解方法和网站防止图片外部链接破解
php中一个常用的函数file_get_contents(图片地址),意思是读取远程的一张图片,然后再输出,很简单的代码:

<?php
header("Content-type: image/jpeg");//防止输出乱码
$img=$_GET['img'];//通过get方法获取图片地址
echo file_get_contents($img);//角色上场

?>
运用起来很简单 在你网站目录建个php文件 命名为 img.php 比如我自己网站就可以这样:

https://www.demo.com/img.php?img=跟上原图片地址。即可。

还有更高级一点的可以伪造头部来源IP,来源地址,请求refer:

<?php  
    function Crack_img($url,$refer){  
      $ch = curl_init($url);  //设置图片url
      curl_setopt ($ch, CURLOPT_REFERER, $refer);  //伪造请求来源
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
      curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);  
      $data = curl_exec($ch);  
      curl_close($ch);  
    
      //$ext = strtolower(substr(strrchr($img,'.'),1,10));  
      //输出图片格式
      /*$types = array(  
                  'gif'=>'image/gif',  
                  'jpeg'=>'image/jpeg',  
                  'jpg'=>'image/jpeg',  
                  'jpe'=>'image/jpeg',  
                  'png'=>'image/png',  
      );*/  
      //$type = $types[$ext] ? $types[$ext] : 'image/jpeg';  
      header("Content-type:image/jpeg");  //输出二进制流图片
      return $data;
    }
        $url = $_GET["url"];  
        $refer = $_GET['refer'];
        echo Crack_img($url,$refer);
?>

运用方法也是和上面一样新建php文件,然后访问+链接。只是这里有个重点需要加来源地址举例说明:https://www.demo.com/img.php?url=图片地址&refer=来源地址。

2.后记

网络中收集的一些图片镜像缓存服务,在很多时候可以起到不错的用途。

 1 https://search.pstatic.net/common?src=
 2 https://imageproxy.pimg.tw/resize?url=
 3 https://images.weserv.nl/?url=
 4 https://pic1.xuehuaimg.com/proxy/

图像缓存可以用来做什么?

  • 可以将有防盗链的图片引用到网页,并成功显示。

  • 可以将 http 图片引用到 https 页面而不出现证书问题。

  • 可以将 xxx 的图片,成功加载。

  • 可以将比较慢的图片资源,加快显示。

部分服务图片链接可以不添加 http://https:// 协议。

 1 https://imageproxy.pimg.tw/resize?url=https://i.imgur.com/hWghm6oh.jpg
 2 https://images.weserv.nl/?url=i.imgur.com/hWghm6oh.jpg
 3 https://pic1.xuehuaimg.com/proxy/i.imgur.com/hWghm6oh.jpg

对速度有要求可以首选 https://search.pstatic.net/common?src= 经过测试这个是速度比较快的图片缓存代理。

防盗链图片演示

 http://pic1.zhimg.com/v2-8b657dff159debf1cff463d61b7dcafd_r.jpg

该图片是知乎图片,存在防盗链直接贴在网页中无法显示,在图片外链前面加上图片镜像服务后可以正常显示了。

 https://i.imgur.com/hWghm6oh.jpg

该图片是知名图床 imgur 的图片,至今已有 10 多年历史,由于上面不限制上传图片类型所以在中国无法打开,在图片外链前面加上图片镜像服务后就可以正常显示了。

3.说明

有些图片代理链接,经过大量使用,已经被墙了,所以有些需要科学工具,才能访问,不过代理链接的目的便是实现反盗链功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值