首页 > 编程语言 >微信小程序安全开发、测试的一些记录

微信小程序安全开发、测试的一些记录

时间:2025-01-21 16:43:59浏览次数:1  
标签:记录 微信 用户 漏洞 开发者 测试 自动检测 类型

目录


本文基于微信开发者平台发布的文章,增加了一些自己的思考。

背景:
小程序的业务接口在开发过程中如果不考虑安全,那么容易有安全漏洞,导致个人信息及隐私泄露风险。

本文主要记录一些业务逻辑类的漏洞,这类漏洞有两个特点:

  1. 不好自动化扫描出来;
  2. 比较常见;

开发原则

建议开发者在应用开发环节中始终基于以下原则:

  • 互不信任原则: 不要信任用户提交的数据,包括第三方系统提供的数据,必要的数据必须放在后台校验。
  • 最小权限原则: 代码、模块等只拥有可以完成任务的最小权限,不赋予不必要的权限。
  • 禁止明文保存用户敏感数据: 需进行安全的加密,避免拖库。
  • 接口鉴权: 除登录接口之外,应对所有非公开接口进行鉴权,并记录详细日志用于追溯。
  • 小程序代码(不包括云函数代码)跟传统 Web 应用的前端代码类似,可被外部获取及进行反混淆,重要业务逻辑应放在后台代码或云函数中进行。
  • 后台接口调用以及云函数调用,必须进行有效的身份鉴权。

漏洞类型——越权

这种漏洞暂时没有办法自动检测,属于业务逻辑漏洞,比较费人。
image
3. 未授权

部分小程序因业务属于公开信息,所以未设置登录授权检查。导致该接口会被黑灰产利用,进行信息倒卖、信息监控等恶意行为。

用户可以不通过登录直接通过订单 ID、手机号、车牌等信息访问详细信息。

漏洞类型——信息泄露

这种漏洞暂时没有办法自动检测,属于业务逻辑漏洞,比较费人。
image

漏洞类型——爬虫遍历

这种漏洞暂时没有办法自动检测,属于业务逻辑漏洞,比较费人。
image

漏洞类型——授权用户信息变更不跟进

这种属于设计上漏洞,可能从开始就没设计好,用户注销、用户更新后,用户的资料后续要怎么处理。

风险识别
开发者通过微信小程序 API,经过用户明确同意获取了用户资料,当遇到用户资料过期、用户主动撤销、用户注销账号等情况时,开发者需对先前获取的用户资料及时清理,依规及时履行相应个人信息保护义务,保护用户权益。

处理建议
开发者需要设置「消息推送服务器配置」,及时接收微信平台关于授权信息的通知并处理;

https://developers.weixin.qq.com/miniprogram/security/basic/listen.html

漏洞类型——注入类

注入类漏洞现在都可以自动检测了,主要看看他建议的修复方式就好。

SQL注入
image

处理建议

  • 使用数据库提供的参数化查询来进行数据库操作,不允许直接通过拼接字符串的方式来合成 SQL 语句。

  • 如果存在部分情况需要通过拼接的方式来合成 SQL ,拼接的变量必须要经过处理:「对于整数,需要判断变量是否为整数类型;对于字符串,需要对单引号、双引号等做转义处理」

  • 避免 Web 应用显示 SQL 的报错信息。

  • 保证 Web 应用里每一数据层的编码统一。

命令注入
image

处理建议

  • 对用户输入的数据(如 ;、|、&等)进行过滤或转义。

  • 不要信任前端(WEB、小程序)发送请求的任何内容,所有参数都进行类型验证,避免直接使用前端传递的命令去执行。

漏洞类型——上传、下载类

这样类漏洞现在也可以自动检测了,主要看看他建议的修复方式就好。

image

处理建议

  • 正确解析上传文件的文件类型,通过白名单的方式限制可上传的文件类型;
  • 后台检查文件二进制头;
  • 上传文件应该和后台运行程序服务器隔离;
  • 上传文件目录不允许有可写、可执行权限;

image
处理建议

  • 正确限制可下载文件所在的目录范围;

  • 通过指定文件 id 的方式来查找下载对应的文件;

Reference

@开发者,这些漏洞你一定要看!
https://mp.weixin.qq.com/s/BSphYEjQb1PCHKW4qTGWXg

小程序安全指引
image
https://developers.weixin.qq.com/miniprogram/security/basic/risk.html

标签:记录,微信,用户,漏洞,开发者,测试,自动检测,类型
From: https://www.cnblogs.com/mysticbinary/p/18683598

相关文章

  • Codeforces Round 999 比赛记录
    前情提要这个菜鸡CF上了\(\color{darkcyan}Specialist\),心情大好,正好赶上放假,决定打一场CF。赛时记录A上来脑子抽了,吃了一发罚时。发现写错了一种情况,改过来就过了。感觉并不是一个好的开始。B竟成为本人唯一一遍过的题,虽然写的时候有点慌。CDP。一开始认为空间不够,但发......
  • postman接口测试工具详解
    一、前言Postman是一款广泛使用的API测试工具,适用于开发人员和测试人员。它提供了直观的用户界面,能够方便地进行API请求、响应验证、自动化测试等操作。本文将详细介绍Postman的功能和用法,帮助用户高效地进行API测试。二、Postman的主要功能1.发送请求Postman支持多种HTTP方......
  • .net6之微信支付宝支付
    概念微信支付1,网页生成二维码,扫码付款2,h5支付(非微信浏览器)3,微信浏览器支付4,app支付5,面对面支付(扫用户生成二维码,扫码枪场景)支付宝支付1,网页生成二维码,扫码付款2,h5支付3,app支付4,面对面支付(扫用户生成二维码,扫码枪场景)依赖开源nuget包注入使用......
  • 企业微信登录Foxmail邮箱详细指南
    前言在日常工作中,许多企业选择使用企业微信作为主要的沟通工具,而企业微信邮箱则是其集成的邮件服务。然而,随着邮件数量的不断增加,你可能会遇到邮箱容量不足的问题,系统可能会提示“邮箱容量不足20%”,这时,将企业微信邮箱与Foxmail等第三方邮件客户端结合使用,可以大大提升邮件......
  • Mimikyu靶场刷题记录
     目录靶场地址: 综合漏洞练习靶场-极核::CTFPass01SourcePass02ResponsePass03GetPass04RobotsPass05BackupPass06CookiePass07HTML整体结构元数据部分页面内容关于 disabled 属性pass08xff_refererpass09PHP一、代码功能概述二、代码逐行分析p......
  • numpy学习记录
    一、库的导入importnumpyasnp二、python原生列表与numpy中的n维数组(ndarray)1、一维列表与ndarray的转换list1=[1,2,3,4,5]print(list1)print(type(list1))#列表转ndarrayoneArrary=np.array(list1)print(oneArrary)print(type(oneArrary))输出结果:......
  • 【PyTorch】使用回调和日志记录来监控模型训练
    就像船长依赖仪器来保持航向一样,数据科学家需要回调和日志记录系统来监控和指导他们在PyTorch中的模型训练。在本教程中,我们将指导您实现回调和日志记录功能,以成功训练模型。一、理解回调和日志记录回调和日志记录是PyTorch中有效管理和监控机器学习模型训练过程的基本工具。1......
  • 实践:MNIST 数据集的使用注意事项之——为什么测试集准确率高,手写准确率低?(MNIST 数据集
    使用MNIST数据集训练手写数字识别模型,作为机器学习的入门是绝大多数初学者的选择(事实上确实是个很好的练习)。然而,这里面事实上有个比较容易犯的错误。错误表现由于手写数字识别这个任务非常的实用并且很容易看出效果来——手写一个数字不就行了?所以一定有一部分初学者像......
  • 2025/1/20课堂记录
    目录绿色通道最大连续和修剪草坪旅行问题绿色通道已经讲了好多遍了(2025/1/11,2024/12/21),现在详细捋一下思路首先上来,最有辨识度的就是“最长”空题段“最小”就是最大值最小——二分答案木材加工闻着味就过来了(详见2024/12/28)但这还和木材加工不太一样,check部分不......
  • 【BQ3568HM开发板】开箱测试
    引言很荣幸入选了“电子发烧友”的贝启科技BQ3568HM开源鸿蒙开发板评测活动,上周在出差,今天才有机会开箱一下开发板,简单测试一下。开机测试插上电源开机后,系统显示的是润和的DAYU的logo,看来厂商提供的软件包主要来自主线代码,定制的内容不多。进入系统后看了一下版本,是4.1.7......