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

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

微信团队04-27

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

一、漏洞介绍

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

二、漏洞案例

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

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

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

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

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

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

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

1.获取小程序用户评论

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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仍有一定的缓冲期,可及时修改后台代码,不会对线上小程序造成影响。

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

  1. 计算机毕业设计Python+uniapp学生课堂考勤小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp学生课堂考勤小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...

  2. 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)

    计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...

  3. 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...

  4. java计算机毕业设计ssm学生课堂考勤小程序947n4(附源码、数据库)

    java计算机毕业设计ssm学生课堂考勤小程序947n4(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ ...

  5. [干货教程]仿网易云课堂微信小程序开发实战经验

    本篇文章想跟大家分享下:我们公司"湖北诚万兴科技"最近刚帮客户定制开发.目前已上线的"哎咆课堂"微信小程序的开发经验分享.首先大概介绍下这个小程序所涉及到的主要 ...

  6. 计算机毕业设计-springboot课堂签到小程序-学生考勤打卡小程序

    计算机毕业设计-springboot课堂签到小程序-学生考勤打卡小程序 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 作者:IT跃迁谷 1.开发环境 开发语言:Java 后台框架:SPrin ...

  7. 微信小程序自定义模态框,官方版本与自定义可扩展版本

    微信小程序自定义模态框,官方版本与自定义可扩展版本 提示:文章最后有源码,可自取 文章主要通过模仿官方的模态框进行自定义模态框的设计,我将会先讲述原理,然后给出源码,最后指出一些需要注意的地方 提示: ...

  8. 为何公众号推送会延迟发送_【微课堂】小程序引流神器—微信公众号营销

    微信公众号作为品牌及商家在微信域中最重要的场景之一,对品牌私域的拉新.维护与促活能够发挥极大的作用.今天小K给大家带来的就是能够有效将微信公众号流量引流至小程序场景,实现品牌私域拉新促活的工具--微信 ...

  9. 小程序mpvue图片绘制水印_mpvue开发小程序如何使用腾讯官方小程序插件--地图

    附带demo,码云地址 官方地图插件是有问题的,建议直接使用微信内置地图查看位置 //直接click调用 openMap() { let mapInfo = { startLat: 121.6695, ...

最新文章

  1. 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题
  2. 理解js中的this指向以及call,apply,bind方法
  3. 用数组实现从文件搜索帐户和验证密码
  4. MAPLAP开发环境中release模式和debug模式烧写.hex文件的不同之处
  5. 六、Analysis of quicksort
  6. 项目管理中的沟通管理(转)
  7. oracle数据库报错: ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
  8. idea 报 Cannot access alimaven
  9. 原创:使用脚本获取本机IP地址
  10. Linux编译后运行,OpenCV2.3.0编译后运行的问题
  11. 两种excel 去掉公式保留数值的方法
  12. nginx的安装和配置
  13. UnityAR-平面检测
  14. 2.1 随从图标的创建———自制卡牌游戏之旅
  15. 爬虫(三):爬取西刺高匿代理
  16. ubantu16.04下安装omnet5.4.1,inet3.6.4,veins4.7.1 和 sumo0.32.0
  17. 服务器显示16g内存可用,安装Win7 64位系统需要16G内存,但内存显示只有8G可用,怎么处理?...
  18. mandatory参数的使用
  19. 用adb 安装(install) apk 的时候报错 “Failure [INSTALL_FAILED_INVALID_APK]“
  20. 在?快来pick你最喜爱的团队!

热门文章

  1. 南师大计算机专业导师,南京师范大学硕士生导师名单
  2. 面筋 嘎嘣脆(C/C++)
  3. 网易Java开发岗面试分享
  4. 一招恢复删除的微信好友
  5. mysql front修改数据传奇_如何修改传奇数据库HeroDB婛名称?
  6. [FPGA]1 MRCC与SRCC学习
  7. 使用百度移动开放平台将web站转换为wap站
  8. 【== 与 equals】
  9. 百胜中国2020年第三季度总收入为23.5亿美元,同比增加1%
  10. 投资学U06 风险资产配置 习题笔记