去年年底,微信公众号对图文消息内的图片做了防盗链设置,但验证发现业务域名下引用微信公众号图文还不受影响,以为做了白名单处理,不料近期发现所有自己网站的页面都不能正常显示图片,而是显示微信的防盗链提示。

由于业务需要,公司产品通过微信公众平台提供的接口创建、维护图文,大概去年8月15号,图文创建接口对非官方图片链接做了过滤,无奈将所有素材上传至微信,与此同时,我们自己也有页面需要显示对应图文信息,面对微信的防盗链屏蔽,想过维护两个图片路径,本地图文显示时替换为本地图片URL,后面感觉这样太影响效率,为了紧急修复图片不能显示的问题,遂通过简单的代码绕过了微信防盗链。

下面是核心代码(PHP)

header('Content-type: image/jpeg');
echo file_get_contents(isset($_GET["url"])?$_GET["url"]:'');

创建php文件,贴入以上代码,传入参数,如:http://www.poorren.com/image.php?url=imgurl

这里只适用于基于referrer的防盗链处理,当然,这里的Content-type可以通过分析URL等方式设置不同的值,这里就不再赘述。这里简单分享,仅供学习。