经常遇到一个图片在本网站里打开没问题,外部引用到自己网站就嘎了!只能手动挨个下载上传。
今天总结尝试下图片防盗链破解方法和网站防止图片外部链接破解
php中一个常用的函数file_get_contents(图片地址),意思是读取远程的一张图片,然后再输出,很简单的代码:
<?php
header("Content-type: image/jpeg");//防止输出乱码
$img=$_GET['img'];//通过get方法获取图片地址
echo file_get_contents($img);//角色上场
?>
运用起来很简单 在你网站目录建个php文件 命名为 666.php 放到根目录
示例
域名/666.php?img=跟上原图片地址
如果是wp的话 图片通过上面方法能访问以后,可以用 nicen-localize-image 图片本地化插件 保存远程图片到本地,实现完全破解。只要本地能访问该图片 插件运行就能自动下载保存到本地wp。
还有更高级一点的可以伪造头部来源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文件,然后访问+链接。只是这里有个重点需要加来源地址
举例说明:
域名/666.php?url=图片地址&refer=来源地址 。
版权说明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件:axxgzs@qq.com与我们联系处理。敬请谅解!!