解决微信公众号复制至网站时“此图片来自微信公众平台未经允许不可引用”问题

解决微信公众号复制至网站时“此图片来自微信公众平台未经允许不可引用”问题

图片[1]-解决微信公众号复制至网站时“此图片来自微信公众平台未经允许不可引用”问题-耶耶熊

原因:

微信启用了防盗链功能,禁止其他网站直接调用微信的图片。防盗链的原理主要是外部网站访问资源时,默认会带有HTTP请求的Referer头部,服务端就可以通过这个HTTP请求的Referer头部,来判断来源地址是否存在于引用白名单里面,如果在白名单,就显示正常的图片,如果不在,就返回防盗链图片。

解决思路:

  • 通过网站编辑器(前端JavaScript)判断复制过来的文章是否存在外链图片,如果存在,就提交给后端(如php或者Java之类的)把这张图片下载到服务器,并改变图片路径为本地服务器路径(如果外链图片过多或者过大,容易造成本地服务器资源和带宽的消耗)。

  • 在引用该外链图片的时候,通过网站的后端去访问这张图片的URL,然后通过服务器中转,并呈现目标图片给用户前端访问(如果外链图片过多或者过大,容易造成本地服务器资源和带宽的消耗,且如果通过服务器访问外链图片次数过多,容易被对方的网站管理员发现,并封IP)。

  • 微信服务器是通过img等标签请求的时候,默认带的Referer头部参数来判断是否外链访问,那么,前端访问这张图片的时候,把默认的Referer头部去掉,就可以实现绕过防盗链的效果了。

解决方案:

 

 

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 共1条

请登录后发表评论