更新时间:2025-07-17 14:38:15贡献者收藏订阅更新我的文档设置返回文档安全开发总原则●零信任原则:后端不能只信任前端提交的数据,计算时应当以后端数据为准,并对来自前端或三方服务端的数据输入,进行合法性判断和鉴权,防止攻击者恶意构造输入数据。●权限最小化:获取用户授权,应按最小化原则申请。授予用户的访问权限,也应当最小化。●用户数据的安全保护:禁止明文存储、传输用户的个人敏感或隐私信息,展示时应脱敏处理。●代码与商家信息保护:商家开发过程信息(如账号密码、测试地址)、代码重要逻辑(如加解密、加签、模型算法)等,尽量不放在前端。不得不在前端实现时,应对代码进行充分混淆及加固保护。前端敏感信息保护敏感信息处理不当(如:隐私信息明文展示、密钥硬编码)将产生数据泄露风险。安全开发建议:●代码中不包括敏感信息,如密钥、ak、测试地址与账户、开发人员、用户、订单信息等。●敏感信息不应以明文、注释、可逆的编码/加密方式(如 base64 编码)、不安全散列函数(如 md5、 sha1)等形式出现在小程序文件内。●敏感信息脱敏的逻辑,必须在服务端完成,不能在客户端进行脱敏。代码注释、隐藏域、url参数、cookies中的数据,也必须脱敏。●用于展示场景的敏感信息,如用户的身份证件号、银行卡号、手机号等,包括用户本人查看的页面,需要脱敏处理。常用脱敏规范信息类型脱敏规范示例身份证件号码包括身份证号、军官证号、护照号、港澳通行证号码、驾驶证号码,显示前 1 位和后 1 位,其余 * 显示。●身份证号:5*************4●护照号:g*******6●港澳通行证:c*******3手机号●大陆地区手机号:显示前 3 位和后 2 位,其余 * 显示。●大陆地区以外手机号:●香港、澳门:前2位 **** 后2位●台湾:前2位 **** 后3位●其余海外地区:显示前3后2 实际位数的*●国家码、地区号,不隐藏。●181******24● 852 90****85● 886 90****855银行卡号●只显示最后 4 位,其余 * 显示。●适用于信用卡和储蓄卡。●************2631●***************8476个人姓名中文姓名只展示最后一个字,前面补充 *;空格保留;长姓名注意展示换行。●*明●***华●***儿中文姓名只有一个字的,展示一个 *。*英文姓名按照段数,2段或者以上的,脱敏第一段。●* hanks●t*●t车牌号地区信息 车牌后三位显示明文,其它都用 * 展示。●浙a**55t●浙a***55t地址●简体及繁体的汉字类型:隐藏区/县级以下部分的地址●字母类型:用6个*隐藏城市以下部分的地址●浙江省杭州市西湖区******●****** , 80331 munich, germany邮箱●前面部分展示前三位,如不够三位则显示全部,后面跟三个 *。●后面部分完整显示●yal***@gmail.com●af***@163.com缺省脱敏规则其它字段,场景如果需要脱敏,可以使用缺省规则。 ●显示前 1/3 和后 1/3,其它用 * 号代替。●内容长度不能被 3 整除时,显示前 length/3.0 取整 1 和后 length/3.0 取整。其它更详细的数据安全要求,请查看 。代码保护代码是商家小程序的重要资产,包含业务逻辑和商家信息,如果泄漏,会造成商业信息泄密、小程序伪造等风险。开发建议:●使用github 等第三方平台管理代码时,限制项目访问权限,不要公开敏感的内部项目代码。●代码中的重要逻辑(如加解密、加签、模型算法等),尽量不放在前端。避免引用第三方资源避免引入第三方资源,防止其中的恶意后门或者历史漏洞被恶意利用。如果要使用三方资源,请确保来源的可靠性,并保持版本及时更新。禁止使用http明文传输建议强制使用 ssl,数据通信必须加密。使用 http 未加密通信,会导致流量劫持和信息泄露。后端系统框架安全商家服务端使用的系统、框架,应及时升级、打补丁,防止出现框架型漏洞攻击导致的业务风险。接口鉴权水平越权避免水平越权攻击。服务端与小程序交互的数据接口,应对用户的身份(如cookie、authcode、accesstoken、前置操作等)进行充分鉴权,不能只依赖于传入参数,防止攻击者伪装成他人发起请求。垂直越权避免垂直越权攻击。服务端提供给用户的数据接口,应与管理员权限、数据区进行分离,避免攻击者通过管理员接口入侵系统。oauth 的注意事项●前端获取授权凭据 auth_code 后,获取用户信息的操作应置于服务端。●获取用户信息后,建议服务端生成 cookie 并下发到前端。生成 cookie 的算法应当确保随机性,防止攻击者通过破解 cookie 生成算法来构造其他正常用户的 cookie。防批量攻击重要、高耗时业务接口应对用户的访问次数、请求频率做严格限制,防止攻击者通过撞库、遍历输入、重放数据等方式进行盗号或窃取用户数据。数据合法性校验服务端接口应对请求的参数、富文本进行有效过滤,防止通过非法输入特殊字符和命令,进行 xss、sql、命令注入等常见web攻击。操作合法性校验服务端需要对用户请求操作的合法性进行判断,包括但不限于:●判断请求的来源是否是自己域名或合作服务方,防止用户被 csrf 攻击,导致攻击者直接获得用户的敏感操作权限。●对请求的参数及时间进行签名,防止攻击者伪造请求数据。●对用户的权限及前置操作进行验证,防止用户绕过验证逻辑。●对于返回重要数据或完成重要操作的请求,如登录、数字开锁等,应增加一次性凭证,防止攻击者劫持到用户登录凭证,重放攻击从而获得权限。文件上传下载文件上传应判断并限制文件的类型,防止攻击者上传恶意代码。服务端存储时,应设置好文件存储权限为只读,不可执行,并与系统其它重要代码、数据隔离。文件下载需要判断用户下载权限,下载的文件需与其它重要数据、文件、代码隔离,管控访问路径,防止攻击者读取到其它目录下的重要文件。