安全课堂|关于小程序AppSecret密钥泄露漏洞官方

article/2025/9/12 6:09:05

原文链接:https://developers.weixin.qq.com/community/minihome/doc/0004a84fcb0bb0e89eddbaa5156401

安全课堂|关于小程序AppSecret密钥泄露漏洞官方

微信团队04-27

为进一步提升小程序的安全性和用户体验,目前平台对提审的小程序均需进行安全检测,在检测过程中发现仍有许多小程序存在安全漏洞,其中涉及AppSecret密钥泄露漏洞,希望通过以下相关的漏洞介绍、案例分析和修复建议,开发者能更加了解如何对该漏洞进行防御。

一、漏洞介绍

AppSecret是小程序的唯一凭证密钥,也是获取小程序全局唯一后台接口调用凭证(access_token)的重要参数,需要开发者妥善保管至后台服务器中,并严格保密,不向任何第三方等透露。小程序若存在AppSecret密钥泄露漏洞的情况,会造成身份信息仿冒、敏感数据外泄等严重后果,开发者应及时发现该漏洞并快速修复相应问题。

二、漏洞案例

某小程序因为AppSecret泄露,导致攻击者可以通过调用API获取该小程序敏感数据,如接口调用凭证、用户信息、用户使用数据等,造成了极大的安全风险。

通过以下展示我们可以明晰该小程序敏感数据外泄的原因,测试者先对小程序网络请求进行抓包,发现请求响应中包含了appid和AppSecret敏感信息:

img

通过上述获取的appid和AppSecret敏感信息,可以利用接口获取到相应的access_token:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ntNdQnz-1664011723592)(https://wdoc-76491.picgzc.qpic.cn/MTY4ODg1MDU0NTcwODMyNw_765873_hSVhFJ3kjUu_xu-Z_1650965113?w=840&h=38)]

img

最后可以实现使用access_token调用该小程序所有后台接口的目的,后台服务端接口已涵盖数据、运维、消息等多方面场景能力。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MN9PiNJB-1664011723593)(https://wdoc-76491.picgzc.qpic.cn/MTY4ODg1MDU0NTcwODMyNw_790829_S2l7yat0r4F3_eGM_1650965848?w=1280&h=645.7112860892388)]

下面我们再具体举几个利用access_token调用小程序后台接口的例子:

1.获取小程序用户评论

img

2.获取小程序用户访问数据

img

3.冒用小程序身份给用户发送消息

img

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WEbH9L07-1664011723597)(https://wdoc-76491.picgzc.qpic.cn/MTY4ODg1MDU0NTcwODMyNw_959985_sI_P2fyJHf3s1MbO_1650966902?w=343&h=382)]

AppSecret密钥泄露漏洞其他的危害包括但不限于:冒用小程序身份给用户发送客服消息/模板消息、获取小程序session_key(用于解密微信侧提供的用户敏感数据)、获取小程序运维信息、日志等敏感信息、更改小程序相关的配置等。

三、漏洞修复

若小程序存在相应的AppSecret密钥泄露漏洞问题,请开发者尽快根据以下修复指引进行调整,以便消除风险:

1.后端API接口请勿把AppSecret敏感信息返回给前端(包括前端请求或小程序代码内传输、记录AppSecret);

2.立即登录小程序管理后台,在【开发-开发管理-开发设置】中对AppSecret进行重置。由于Appsecret存在历史泄露且仍然有效,务必进行重置才可消除风险,以免被攻击者恶意利用,请尽快按指引进行修复;

3.对AppSecret进行重置后,请及时修改后台代码,以免无法使用微信API

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2U5MJbR-1664011723598)(https://wdoc-76491.picgzc.qpic.cn/MTY4ODg1MDU0NTcwODMyNw_183975_xgpJXcyZZw7TVXTA_1650968191?w=1280&h=626.793084216397)]

其他常见问题

Q1: 小程序提审不通过,显示小程序AppSecret存在历史泄露且仍然有效,是否需要重置AppSecret?

A1: 需要,请重置AppSecret后再提审,若审核通过,说明该问题已消除,若审核不通过,说明仍存在明文的AppSecret,需进一步排查并去除AppSecret字段及其对应值。

Q2: 重置小程序AppSecret会影响到线上小程序吗?

A2: auth.getAccessToken需要使用AppSecret进行调用入参,重置AppSecret后,如果用新的AppSecret去获取access_token,那么旧的access_token会在5分钟内失效,如果未使用新的AppSecret,旧的access_token会在两小时内失效,故即使重置AppSecret,access_token仍有一定的缓冲期,可及时修改后台代码,不会对线上小程序造成影响。


http://chatgpt.dhexx.cn/article/Z7xf1LlY.shtml

相关文章

【微信小程序】项目上线所需AppID、AppSecret和原始ID获取的逐步方法

一、简述 本文内容面向业务老师,通过详细的逐步方法,帮助对流程不熟悉的有微信小程序管理员权限的业务老师,通过微信公众平台,获得项目上线所需的AppID、AppSecret、原始ID,不熟悉流程的开发人员也可以阅读。 二、进…

微信小程序AppID、AppSecret如何获取

进入微信公众平台 https://mp.weixin.qq.com/ 获取AppID(小程序ID) 微信公众平台 - 开发 - 开发管理 - 开发设置 获取AppSecret 管理员用户,同AppID页面,点击“生成”,生成小程序秘钥 注意:尽量只生成一次&…

值得收藏!这 100 个 Python 实战小项目真棒!

学习 Python 会有这么一个阶段,太简单的程序看不上眼,复杂的开源项目又有点力不从心,这个时候,你就需要接触点简单的 Python 小项目来提升 Python 技能。 最近逛GitHub, 碰巧碰上有这样一个项目,收集了 100 个实用的 …

2022最新python100个实战练手项目,【附源码】,快来学习起来吧!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。 接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。大家…

python爬虫实战小项目

本文所讲的爬虫实战属于基础、入门级别,使用的是python2.7实现的。 爬虫原理和思想 本项目实现的基本目标:在捧腹网中,把搞笑的图片都爬下来,注意不需要爬取头像的图片,同时,将图片命好名放在当前的img文件…

django项目实战基于Python实现的电影推荐系统

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Python项目介绍 资料获取 Python项目介绍 计算机毕业设计python毕设项目之django电影推荐系统-IT实战课堂_哔哩哔哩_bilibili计算机毕业设计python毕设项目之django电影推荐系统-IT实战…

给缺少Python项目实战经验的人

我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用到实际…

Python项目实战 —— 淘宝用户行为分析

Python项目实战 Python项目实战 —— 0淘宝用户行为分析 一、背景 本数据集共有大约1200万条数据,数据为淘宝APP2014年11月18日至2014年12月18日的用户行为数据,字段分别是:user_id用户身份(已脱敏)、item_id商品ID(已脱敏)、behavior_type…

Python实战小项目

不是很稀饭《复联》嘛,看了《复联4》,就用50行Python代码做了这些: 视频展示:50行代码玩转《复仇者联盟》 教程地址:图片转字符画 相关教程地址:视频转字符动画 当然,这个仅仅是初学者的一个…

手把手教导实战Python Web项目

手把手教导实战Python Web项目 一、前言 Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很…

Python web开发之flask项目实战总结

在线问答系统 Flask Web开发项目介绍功能描述一、前端设计二、数据库设计三、页面功能开发1.用户模块2.问答模块 四、总结 Flask Web开发 请求到响应 用户通过浏览器访问url,会发送请求到服务器,服务器接收请求后会根据url规则找到对应的视图函数进…

Python必学的4个实战项目,拿走不谢

最近遇到了一些比较经典的实战项目,比较适合零基础的小白以及基础较薄弱的小伙伴。想了想,我决定把它分享给大家。 Python是一种极具可读性和通用性的编程语言。Python这个名字的灵感来自于英国喜剧团体Monty Python,它的开发团队有一个重要的…

菜鸟进阶高手, 推荐 7 个 Python 上手实战项目

作为一个语法简洁、有着丰富的第三方库的编程语言,Python 上手极为简单,短时间内就可以让你编写出能够解决实际问题的小程序,甚至去面试初级 Python 工程师的职位。 不过,如果要写出一些更复杂的应用,或者想从事数据分…

比金典还经典——4个python项目实战

写在前面的一些P话: Python是一种极具可读性和通用性的编程语言。Python这个名字的灵感来自于英国喜剧团体Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python易于设置,并且是用相对直接的风格来编…

Python项目实战 4.1:账号登录

目录 一、用户名登录 二、多账号登录 三、首页用户名展示 四、退出登录 五、判断用户是否登录 一、用户名登录 1. 用户名登录逻辑分析 2. 用户名登录接口设计 1. 请求方式 选项方案请求方法POST请求地址/login/ 2. 请求参数:表单 参数名类型是否必传说明usern…

Python爬虫实战

文章目录 1. 引言2. 页面分析2.1 页面元素分析2.2 分页分析2.3 页面详情页面2.4 下载链接 3. 代码3.1 数据库结构3.2 步骤3.2.1 根据url获取页面结构3.2.2 解析页面数据3.2.3 数据存入数据库 4. 测试结果5. 完整代码 1. 引言 注:勿用于非法用途。 之前学习过Pytho…

insert into

7.insert into 如果我们想向表格中插入数据,就需要用到insert into语句了 7.1 insert into语法 INSERT INTO 表名 VALUES (值1, 值2,....) (注:插入一行数据) INSERT INTO 表名 (列名, 列名…

LaTeX: Missing } or { inserted. ^^I\For

报错 分析 可以发现,报错提示缺少{,但第306行并没有问题,并不缺少大括号。 这种情况下,很有可能是前面某个公式处出现了大括号缺失,建议从头到尾查找一遍。 修改 往前排查后发现某一处缺少大括号,如下所…

sqlserver触发器的使用以及inserted和deleted详解

背景:最近在项目中有需求是当人员表中有变动时(比如:增加人员、修改人员信息、删除人员信息)需要把这张表中的变动的信息同步到它对应的日志表中。那么如果用代码写逻辑的话在执行效率上会比较慢,正好sqlserver提供了触…

insert和insertSelective区别

使用逆向工程生成的代码做一个添加时通常都会给出两个答案&#xff0c;如题目想要增加一条数据会让你选择insert或者insertSelective 两者的区别在于如果选择insert 那么所有的字段都会添加一遍即使没有值 <insert id"insert" parameterType"com.ego.pojo.Tb…