java 微信图片盗链破解_隐藏图片地址,伪造来路Referer实现绕过微信图片的防盗链机制...

最近用软件采集微信公众号文章图片下载不了,全是显示盗链图片。没有办法只好上网查询有没有办法解决。在一个朋友那看到了2种解决方案记录下:

微信防盗链

用php写一个绕过的代码,你只需要把php上传到你的服务器,然后软件里设置.ini文件里添加配置项即可实现。

php代码如下,保存为image.php文件<?php

/**

此程序作为绕过微信图片的防盗链机制,通过这个文件中转可以实现绕过。

文件名可随意修改,原理就是伪造一个空的Referer来路可以绕过。从而使软件可以预览和下载微信的图片。

警告:删除本程序会导致软件无法预览和下载微信图片。

**/

function getRemoteFile($url, $refer = '') {

$option = array(

'http' => array(

'header' => "Referer:$refer")

);

$context = stream_context_create($option);

return file_get_contents($url, false, $context);

}

$url = $_GET['url'];

$url = addslashes($url);

$str = getRemoteFile($url);

header('content-type:image/jpg;');

echo $str;

?>

把以上代码存为php文件,然后上传到相应的服务器目录里,然后到软件目录下,找到data目录,找到 设置.ini 用记事本打开,在网站设置下,进行编辑增加2项:

[网站设置]防盗链地址=http://www.XXX.com/image.php?url=防盗链是否转码=假

软件就会帮你把源码里的img src=的图片网址给替换成这个,http://www.XXX.com/image.php?url=http://mmbiz.qpic.cn/mmbiz_jpg/ow6przZuPIFNYKqF4c7WnF5dwlZibpbsK2zYAsDHrTKOHM2T802JZiaI2xe33nc08iazDrXNMibejNb9UuvLB86LzQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1

其中的原理就是,把图片带空来路加载出来输出到页面上。以上代码才疏学浅,如果有更好的方法,希望会php的朋友可以指教一下。

第二种方法代码:<?php

header("Content-Type:image/png");

$string = $_SERVER["QUERY_STRING"];

/*换一张空白图片,如果遇到错误,需要用上*/

$im = imagecreate(600, 300);

$black = imagecolorallocate($im, 100, 100, 100);//图片背景

$white = imagecolorallocate($im, 255, 255, 255);

/*获取图片的真实地址*/

$url = strstr($string, "http");

if (!$url) {

imagettftext($im, 18, 0, 200, 100, $white, "./fonts/hwxh.ttf", "Error 001");

imagettftext($im, 14, 0, 150, 150, $white, "./fonts/hwxh.ttf", "请在参数中输入图片的绝对地址。");

imagepng($im);

exit();

}

@$imgString = urlOpen($url);

if ($imgString == "") {

imagettftext($im, 18, 0, 200, 100, $white, "./fonts/hwxh.ttf", "Error 002");

imagettftext($im, 14, 0, 70, 150, $white, "./fonts/hwxh.ttf", "加载远程图片失败,请确认图片的地址能正常访问。");

imagepng($im);

exit();

}

/*如果没有错误*/

$im = imagecreatefromstring($imgString);

$white = imagecolorallocate($im, 255, 255, 255);

/*加上水印*/

//imagettftext($im, 12, 0, 20, 20, $white, "./fonts/hwxh.ttf", "水印的文字1");

//imagettftext($im, 12, 0, 5, 35, $white, "./fonts/hwxh.ttf", "水印(可以写你的网址)");

imagepng($im);

/*抓取图片*/

function urlOpen($url, $data = null, $ua = '')

{

if ($ua == '') {

$ua = 'MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';

} else {

$ua = $ua;

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_USERAGENT, $ua);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$content = curl_exec($ch);

curl_close($ch);

return $content;

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值