首页 > 其他分享 >微信图片防盗链解决方案:自建代理绕过限制。

微信图片防盗链解决方案:自建代理绕过限制。

时间:2024-11-01 09:22:43浏览次数:1  
标签:__ return url 微信 image 解决方案 防盗链 图片

当爬取微信里的图片使用的时候会发现,当我们浏览器地址栏 访问微信中的图片URL是没有问题。但当我们在自己项目中使用img标签src引入的时候,就会出现,“此图片来自微信公众平台未经允许不可引用”的问题。这是因为微信为了防止其他平台引入,特意做了类似防盗链的功能。

前往原文地址查看效果:张苹果博客

网上找了几个解决方法。

一,在页面header中添加meta标签,设置referrer。

<meta name="referrer" content="never">

该属性禁止了header发送页面相关信息,虽然可以阻止一些攻击以及绕过图片防盗链的效果。确实解决了这个问题。但是会出现其他问题如:影响页面跳转和回溯,第三方统计代码失效(如CNZZ、百度统计),SEO和社交媒体分享影响等。

二,img标签上添加 referrerpolicy="no-referrer"

<img src="微信图片url" referrerPolicy="no-referrer"  />

正常应该能解决,但我的项目第一次打开图片的时候没问题,但当我第二次访问的时候,不知道为什么又出现了“此图片来自xxxxx”的问题。

三,第三方代理

 <img src="https://xxx代理地址/?url=微信图片url"/>

需要自己去找一些第三方的代理,但是如果第三方地址挂了,那么就出问题了。所以这个方法可能不太稳定。

想了想,既然别人的可能不稳定,能不能自己写一个呢?后面自己用python简单实现了一下。

四,Python Flask代理服务器

通过Flask框架和requests库实现图片资源的获取和转发。该方法相对稳定(毕竟是自己弄的),但可能受到服务器性能和网络环境的影响。

1,完整代码
from flask import Flask, Response, request
import requests

app = Flask(__name__)

def fetch_image(image_url):
    try:
        response = requests.get(image_url)
        if response.status_code == 200:
            return response.content
        else:
            return None
    except requests.RequestException as e:
        print(f"Error fetching image: {e}")
        return None

@app.route('/fetchImage', methods = ['GET'])
def fetchImage():
    # 获取图片地址
    image_url = request.args.get('url')
    image_data = fetch_image(image_url)
    if image_data:
        mime_type = 'image/jpeg'  # 这里需要替换为实际的MIME类型
        return Response(image_data, mimetype=mime_type)
    else:
        return "Failed to fetch image", 404



if __name__ == '__main__':
    # 使用WSGI服务器运行应用程序
    from gevent.pywsgi import WSGIServer
    http_server = WSGIServer(('127.0.0.1', 5000), app)
    http_server.serve_forever()

2,测试接口没问题

3,部署到服务器上使用。
   <img src="https://zhangpingguo.com/spider/fetchImage?url=https://mmbiz.qpic.cn/sz_mmbiz_png/3Vm2lcZKj6kibOJxU942w70J8zb6ianMzwPvEwSI5SNOzicM47GN9Bo3MvPAeHJr7pjPRVsjxDLgOYKQ3pR8jcHHA/640?wx_fmt=png&from=appmsg"/>

最后结果正常访问。但是估计是我服务器太廉价了,访问速度忒慢了。不管了,反正能用就行...
如你是PC端访问本文,进入原文张苹果博客,鼠标移入上方线条,点击“摸鱼日历”可查看效果。

标签:__,return,url,微信,image,解决方案,防盗链,图片
From: https://www.cnblogs.com/zhangapple/p/18519327

相关文章

  • 织梦DedeCMS生成静态文件速度缓慢的解决方案
    问题:DedeCMS网站数据量大时,生成静态页面速度非常慢。解决方法:修改 inc_fun_SpGetArcList.php 文件:打开 include/inc/inc_fun_SpGetArcList.php 文件。找到以下代码:for($i=0;$i<$ridnum;$i++){if($tpsql=="")$tpsql.="And((".TypeGetSunID($reids[$i],$......
  • 关于visual stdio 2022代码在win11上运行异常缓慢的解决方案分享
        此篇博客记录笔者解决visualstdio2022运行c语言异常缓慢的解决方案。    起初我上网查资料得知可能是我的模块加载太多了,但是在禁用了额外的模块依然异常缓慢,我就继续查找资料,于是发现另一篇博客反应了和我一样的问题,他的解决方案是关闭联想自带的安全......
  • Unity从0开发游戏上架微信小程序系列-1-完成小游戏逻辑
    本人的小游戏“方块消了个消”已经上线啦!!!欢迎各位来体验,希望大家多多提意见哦~微信公众号:unity学习加油站,注:本系列更完会在公众号上放置源码,本系列会包括以下几种游戏前言:本文主要内容,制作上图中第一个游戏,现在开始吧,喜欢的朋友点个赞吧!!!第一步:准备素材,导入Unity中制......
  • 【Unity】微信小游戏适配之屏幕常亮
    屏幕常亮Unity:Screen.sleepTimeout=SleepTimeout.NeverSleep;微信:wx.setKeepScreenOn(Objectobject)功能描述设置是否保持常亮状态。仅在当前小程序生效,离开小程序后设置失效。参数Objectobject属性类型默认值必填说明keepScreenOnboolean 是是否保......
  • 掌握微信自动回复设置,让沟通更简单更高效便捷!
    你是不是也想在忙碌的时候,仍然能够及时回复好友并提高沟通效率呢?如果是的话,那么微信管理系统中的机器人功能将是你的不二之选!1、自动通过好友请求当有人向你发送好友请求时,微信管理系统能够自动审核并通过这些请求。你就不必每次都手动查看新的请求,还可以确保你不会错过任......
  • 太硬核!企业数据备份解决方案有哪些?这4个备份妙计,让人眼前一亮又一亮!
    在数字化时代,企业数据的安全与稳定是企业持续发展的关键。面对日益复杂多变的数据环境,企业数据备份已成为保障数据安全不可或缺的一环。本文将为您揭秘四个企业数据备份解决方案,旨在为企业提供全方位、高效、可靠的数据保护策略。一、外部硬盘备份外部硬盘是数据备份的常用......
  • Django设置跨域请求解决方案
    Django设置跨域请求解决方案在现代Web开发中,跨域资源共享(CORS,Cross-OriginResourceSharing)是一个常见的需求。尤其是在前后端分离的开发模式下,Django作为后端框架,常常需要处理来自不同源的请求。本文将详细介绍如何在Django中设置跨域请求的解决方案,帮助开发者有效管理跨域请求......
  • 如何用pbootcmsAPI接口开发微信小程序UNIAPP示例
    1.准备工作在开始开发小程序之前,你需要:搭建好PbootCMS环境,确保其正常运行。注册小程序并获取AppID和AppSecret。配置PbootCMS与小程序的接口。2.封装API//获取站点信息exportconstpostSite=(config={})=>http.post('/cms/site',config)//获取自定义标签ex......
  • uniapp - 详细实现移动端公众号 H5 网页授权登录流程及示例代码,申请测试公众号全流程
    前言Vue版本,请访问这篇文章。在uni-appH5网站平台开发中,详解微信公众号网页接入微信授权登录示例代码,附带申请测试公众号全流程及配置教程,提供前端h5页面公众号网页实现授权登陆并获取用户昵称头像数据的示例源码,用自己项目跑出来的本地局域网IP段就可以拉起公众......
  • 微信用不了零钱支付是什么原因
    微信用不了零钱支付可能是由多个因素引起的,包括:1.账户安全问题;2.余额不足或者超过限额;3.网络或系统故障;4.地区性限制;5.支付行为异常等。了解这些因素不仅有助于解决问题,还能提醒我们在日常使用中更加注意账户安全和合规使用。1.账户安全问题账户安全是影响微信零钱支付功能......