1.破解图片防外链,图片反防盗链的方法
经常遇到一个图片在本网站里打开没问题,外部引用到自己网站就嘎了!只能手动挨个下载上传。
今天总结尝试下图片防盗链破解方法和网站防止图片外部链接破解
php中一个常用的函数file_get_contents(图片地址),意思是读取远程的一张图片,然后再输出,很简单的代码:
<?php header("Content-type: image/jpeg");//防止输出乱码 $img=$_GET['img'];//通过get方法获取图片地址 echo file_get_contents($img);//角色上场 ?>
运用起来很简单 在你网站目录建个php文件 命名为 img.php 比如我自己网站就可以这样:
https://topyun.vip/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://topyun.vip/img.php?url=图片地址&refer=来源地址
另一种方法:
<?php $p=$_GET['p']; $pics=file($p); for($i=0;$i< count($pics);$i++) { echo $pics[$i]; } ?>
把以上php代码保存为一个php文件,比如pic.php,然后放到你网站根目录,比如我的网站,加上这个pic.php再加上“?p=”跟上原图片地址即可。如下:
https://topyun.vip/pic.php?p=原图片地址
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.说明
有些图片代理链接,经过大量使用,已经被墙了,所以有些需要科学工具,才能访问,不过代理链接的目的便是实现反盗链功能。