【OpenHarmony/HarmonyOs 】60HarmonyOS NEXT 发布前安全检查权限、隐私、密钥、网络与供应链全清单发布前安全检查不是上线前临时跑一次扫描工具而是把应用包、源代码、配置、权限、数据流、第三方依赖、日志、云端规则和运营应急串成一条可验证的交付链。本文面向 HarmonyOS NEXT 应用给出一套可直接用于项目评审的安全检查方法并强调每项结论都要有证据而不是凭经验判断“应该没问题”。一、为什么功能完成不等于可以发布应用可能构建成功、页面正常、测试通过但仍然存在调试证书或测试配置进入正式包云服务配置指向错误环境权限声明超出实际需要隐私弹窗与真实数据处理不一致日志输出账号、消息或令牌敏感数据以明文落盘网络请求缺少超时和错误处理第三方依赖含已知漏洞Cloud DB 权限规则过宽备份配置包含不应跨设备恢复的数据测试入口或管理员开关仍可访问崩溃平台上传了未经脱敏的上下文。发布检查的目标是证明风险已被识别、处理并可追踪。二、检查范围要覆盖六个层次源代码层应用配置层构建与签名层数据与网络层云端与第三方服务层发布运营与应急层。只检查客户端代码会遗漏云规则和发布后台配置。三、建立发布阻断机制安全问题应按严重程度分级P0必须阻断发布例如私钥进入应用包、任意用户可读取他人私密数据、认证可绕过。P1修复并复测后才能发布例如敏感日志、权限过度申请、备份范围错误、依赖存在高危漏洞。P2需要明确负责人和修复期限例如低风险信息暴露、非关键接口缺少统一错误页。P3持续改进项例如安全文档、自动化覆盖和体验优化。风险不能仅用“后续优化”结束必须有责任人和截止时间。四、资产与数据流盘点发布前先列出应用处理的资产用户身份标识手机号或邮箱登录令牌聊天消息图片和附件心情与日记内容好友关系设备标识崩溃日志网络状态云数据库对象本地缓存备份数据。对每类数据回答从哪里来、为什么收集、保存在哪里、保存多久、谁能访问、如何删除、是否跨设备或跨境流动。五、权限最小化检查module.json5中的权限声明。requestPermissions: [ {name:ohos.permission.INTERNET}, {name:ohos.permission.GET_NETWORK_INFO} ]每个权限都要对应明确功能。检查原则未使用权限直接删除可用系统 Picker 完成时不扩大长期文件权限运行时权限只在用户触发相关功能时请求拒绝权限后提供可理解的降级路径不把权限请求集中到首次启动权限用途文案与真实行为一致多模块不得重复声明无关权限。六、隐私告知与同意隐私弹窗不能只提供一个“同意”按钮。应确认首次处理个人信息前展示清楚说明数据类型和处理目的隐私政策链接有效用户可以拒绝非必要处理拒绝后应用不会暗中初始化相关 SDK同意状态可持久化政策发生重大变化时重新提示设置页提供查看与撤回入口撤回后停止后续非必要处理注销和删除请求有实际流程。隐私文案必须与代码和服务端行为一致。七、密钥与配置文件重点搜索私钥签名密码管理员令牌云数据库高权限凭据测试账号密码固定访问令牌内部服务地址调试开关证书文件环境配置。客户端包中的内容原则上都可被提取不能把管理员秘密放进应用。普通客户端配置标识与真正的服务端秘密要明确区分。八、签名与构建产物发布构建应验证使用正式签名签名文件不进入版本库密码不写入脚本和日志正式包关闭调试能力正式环境地址正确包名、版本号和渠道正确构建产物可追溯到源码提交构建机权限受控产物生成后计算摘要上传前再次核对签名信息测试包和正式包不会混淆。构建成功只能证明语法与依赖可用不能证明产物安全。九、日志与调试信息禁止在正式环境输出完整令牌密码和验证码聊天正文日记正文完整手机号或邮箱云数据库完整对象文件绝对路径中的个人信息认证响应原文服务端堆栈和内部实现密钥或签名材料。错误日志应记录必要的错误码、脱敏标识和追踪 ID。不要用“方便排查”作为长期保留敏感日志的理由。十、本地存储安全检查 Preferences、数据库、文件和缓存目录。重点确认登录令牌是否按平台安全能力存储密码从不明文保存私密消息是否进入普通缓存临时附件是否及时删除截图、导出和分享是否暴露内容用户退出后是否清理账号相关缓存多账号切换是否发生数据串用本地数据库是否包含不必要字段文件名是否泄露用户身份清理失败是否可重试。数据最小化同样适用于本地存储。十一、备份与恢复安全如果应用声明备份扩展需要检查哪些数据允许备份登录令牌是否被排除设备绑定凭据是否被排除临时缓存是否被排除私密内容是否符合用户预期恢复到新设备后是否重新认证恢复数据是否校验版本多账号数据是否隔离备份失败是否泄露路径和内容删除账号后云备份如何处理。备份便利性不能突破认证和隐私边界。十二、网络通信安全所有生产请求应验证使用安全传输不允许明文回退证书异常时失败关闭请求具备合理超时重试有次数上限和退避幂等接口使用幂等键错误响应不泄露内部信息认证令牌不会进入 URL上传文件校验类型和大小下载文件校验来源和完整性网络切换后状态可恢复代理和异常证书场景经过测试。不要自行实现不成熟的加密协议替代平台和标准协议。十三、认证与会话认证检查包括未登录用户无法进入受保护页面路由参数不能绕过登录守卫令牌过期后安全退出或刷新刷新失败不会无限循环退出登录后清理本地会话多设备会话策略明确用户禁用后会话及时失效游客数据与正式账号合并规则明确敏感操作需要重新确认身份错误提示不泄露账号是否存在。前端隐藏按钮不是授权控制。十四、Cloud DB 访问控制云数据库检查重点用户只能读取授权对象私密日记只对所有者可见好友申请只能由参与者访问聊天消息限制会话成员读取更新操作不能篡改所有者字段删除权限符合业务规则查询条件不能绕过对象权限管理员能力不下放客户端实时订阅遵守同样权限测试环境规则不会复制到生产默认规则不是全开放权限拒绝有安全的客户端处理。必须用不同身份账号做交叉访问测试。十五、输入、输出与文件处理所有外部输入都应视为不可信包括文本框路由参数Deep Link云端字段图片元数据文件名剪贴板分享内容第三方 SDK 回调本地旧版本缓存。检查长度、类型、范围、编码和业务权限。输出到富文本、Web 内容或文件系统时要按目标上下文进行安全处理。十六、图片与附件安全附件功能要验证使用系统选择器限制文件类型限制单文件和总大小检查实际内容而非只看扩展名生成安全文件名防止路径穿越上传失败后清理临时文件下载前确认访问权限分享前二次确认私密内容图片元数据是否需要移除缩略图缓存是否随账号清理恶意或损坏文件不会导致应用崩溃。十七、Web 与外部跳转如果应用包含 Web 组件或外部链接需要检查仅加载允许的协议和域名不信任页面不能调用高权限桥接外部 URL 在打开前校验自定义 Scheme 参数严格解析不允许任意文件访问下载行为需要用户确认页面标题和来源可识别登录令牌不通过 URL 传递返回应用时重新校验状态钓鱼式相似域名被拒绝。十八、第三方 SDK 与依赖依赖检查不是看能否安装而是确认来源可信版本明确锁文件已提交不使用来源不明的二进制已知漏洞经过扫描高危漏洞有处置结论SDK 收集的数据已披露SDK 在同意前不会初始化无用 SDK 已移除权限不会因 SDK 被扩大更新日志经过审阅许可证满足发布要求。供应链风险会直接进入最终应用包。十九、代码与 ArkTS 安全质量重点审查异常被吞掉导致授权失败后继续执行Promise拒绝未处理空值和非法状态导致绕过校验全局单例残留上一个账号数据页面销毁后异步回调仍更新状态订阅监听未解除重复点击触发重复支付或重复写入时间戳主键碰撞客户端仅靠可见性控制权限调试分支进入正式逻辑敏感信息拼接到错误消息随机数用途与安全要求不匹配。严格类型可以减少错误但不能替代安全设计。二十、发布前安全检查清单1. 应用标识检查目标包名、应用名、版本号与发布渠道完全正确。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。2. 正式签名检查目标构建使用正式证书且签名材料未进入仓库。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。3. 调试能力检查目标正式包关闭调试入口、测试菜单与开发者后门。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。4. 环境隔离检查目标正式包只连接生产环境且测试账号不可用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。5. 构建追溯检查目标产物可关联源码版本、构建时间和构建任务。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。6. 产物摘要检查目标上传前记录产物哈希并验证文件未被替换。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。7. 权限清单检查目标每项权限都有当前版本真实功能依据。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。8. 动态授权检查目标敏感权限在用户触发功能时再申请。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。9. 拒绝降级检查目标用户拒绝权限后核心非相关功能仍可使用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。10. 隐私弹窗检查目标首次处理个人信息前完成有效告知。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。11. 隐私政策检查目标政策链接有效且内容与实际数据流一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。12. 撤回同意检查目标设置页可撤回非必要处理并真正停止 SDK。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。13. 账号注销检查目标注销流程可执行且说明数据处理期限。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。14. 数据删除检查目标用户删除内容后客户端与云端行为一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。15. 数据最小化检查目标不采集、不上传、不保留无业务必要字段。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。16. 敏感日志检查目标正式日志不含令牌、密码、正文和完整身份信息。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。17. 崩溃上报检查目标崩溃上下文经过脱敏且符合隐私告知。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。18. 本地令牌检查目标会话凭据使用合适的安全存储机制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。19. 密码处理检查目标密码和验证码不落盘、不打印、不长期驻留。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。20. 缓存隔离检查目标多账号缓存使用独立命名空间并在退出时清理。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。21. 临时文件检查目标上传、裁剪、拍照产生的文件可及时删除。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。22. 备份排除检查目标令牌、设备凭据和临时缓存不进入备份。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。23. 恢复认证检查目标新设备恢复后敏感功能要求重新认证。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。24. 安全传输检查目标生产接口只使用安全传输且不明文回退。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。25. 证书异常检查目标证书错误时请求失败而不是继续连接。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。26. 网络超时检查目标连接、读取和上传均有合理超时。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。27. 有限重试检查目标失败重试有上限、退避并避免重复业务写入。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。28. 令牌位置检查目标认证信息不出现在 URL、日志和分享内容中。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。29. 接口授权检查目标服务端按用户身份校验资源所有权。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。30. 登录守卫检查目标所有受保护路由均不能被参数或跳转绕过。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。31. 会话过期检查目标令牌失效后不会卡死、循环刷新或继续显示私密数据。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。32. 退出清理检查目标退出后清理会话、订阅、缓存和页面栈。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。33. 跨账号测试检查目标账号 A 无法访问账号 B 的数据和附件。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。34. Cloud DB规则检查目标生产规则默认拒绝并按业务最小授权。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。35. 所有者字段检查目标客户端不能把记录所有者篡改为其他用户。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。36. 私密内容检查目标私密日记和消息只对授权参与者可见。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。37. 实时订阅检查目标订阅结果遵守权限且页面销毁后解除监听。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。38. 输入长度检查目标昵称、消息、标签和备注均有服务端与客户端限制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。39. 非法状态检查目标未知枚举、空字段和旧版数据不会绕过校验。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。40. 路由参数检查目标页面参数经过类型、范围和权限验证。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。41. Deep Link检查目标仅允许受信目标且敏感操作要求二次确认。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。42. 附件类型检查目标上传校验实际内容、扩展名、大小与数量。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。43. 附件权限检查目标下载和分享前重新确认访问权限。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。44. 文件路径检查目标文件名规范化并防止路径穿越和覆盖。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。45. 图片隐私检查目标必要时移除定位等元数据并提示分享风险。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。46. Web 白名单检查目标Web 内容仅来自允许的协议和域名。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。47. 桥接权限检查目标不可信 Web 页面无法调用高权限原生能力。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。48. 外部跳转检查目标打开外部页面前校验 URL 并提示离开应用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。49. 依赖来源检查目标所有依赖来源可信且版本受锁文件约束。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。50. 漏洞扫描检查目标高危和严重依赖漏洞已修复或阻断。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。51. SDK 合规检查目标第三方 SDK 的收集行为已披露并受同意控制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。52. 无用依赖检查目标移除未使用的 SDK、权限和模块。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。53. 许可证检查目标依赖许可证满足商业发布和分发要求。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。54. 异常处理检查目标认证、数据库和文件错误不会进入不安全默认状态。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。55. 并发防重检查目标关键按钮和写入接口具备防重复机制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。56. 主键唯一检查目标业务主键在并发、离线和重试场景下保持唯一。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。57. 数据迁移检查目标新旧版本数据兼容且迁移任务可回滚。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。58. 删除保护检查目标高风险删除操作有确认、授权和审计。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。59. 屏幕隐私检查目标敏感页面按产品要求控制截图与任务预览暴露。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。60. 剪贴板检查目标不自动复制敏感数据且必要时提示用户。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。61. 通知隐私检查目标锁屏通知不直接展示私密消息正文。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。62. 无障碍安全检查目标读屏标签不泄露隐藏字段或完整凭据。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。63. 多窗口检查目标分屏、后台和任务切换不会显示上一个账号敏感内容。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。64. 前后台切换检查目标恢复前台时重新验证会话与页面数据权限。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。65. 截图物料检查目标商店截图和演示数据不包含真实用户信息。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。66. 测试数据检查目标正式包不内置真实账号、聊天记录或密钥。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。67. 资源文件检查目标rawfile、media 和配置中无调试证书与敏感文件。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。68. 代码扫描检查目标仓库已扫描硬编码秘密、危险调用和敏感日志。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。69. 构建检查检查目标全项目正式配置编译成功且无阻断告警。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。70. 测试通过检查目标单元、集成、权限和关键安全用例均通过。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。71. 人工复核检查目标至少一名非实现者完成独立安全复核。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。72. 风险签字检查目标遗留风险有级别、负责人、期限和批准记录。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。73. 灰度策略检查目标首发比例、观察指标和停止条件明确。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。74. 监控告警检查目标认证失败、权限拒绝、崩溃和异常流量可告警。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。75. 应急开关检查目标高风险功能可通过受控配置快速关闭。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。76. 回滚产物检查目标上一稳定版本和回滚步骤已经准备。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。77. 事件响应检查目标安全联系人、升级路径和用户通知模板可用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。78. 发布后台检查目标商店隐私标签、权限说明和实际版本一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。79. 最终复核检查目标上传产物与已测试产物哈希一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。二十一、自动化检查建议可以在持续集成中自动执行全项目编译Code Linter单元测试依赖漏洞扫描许可证扫描硬编码秘密扫描敏感日志关键字扫描配置文件环境检查产物文件清单检查版本号与包名检查权限清单差异检查构建产物摘要生成。自动化结果应作为发布门禁而不是仅发送一封无人处理的通知。二十二、人工渗透式验证自动化很难替代以下人工场景修改路由参数访问他人页面用账号 A 请求账号 B 的对象登录过期后从后台恢复断网编辑后切换账号再联网拒绝权限后反复进入功能通过分享链接打开已删除内容上传伪装扩展名文件快速重复点击产生并发请求恢复旧备份到新版本使用旧客户端访问迁移后的数据锁屏通知查看私密消息任务预览观察敏感页面残影。测试结论应记录账号、环境、版本、步骤和结果但不能保存真实敏感数据。二十三、发现问题后的闭环每个安全问题记录唯一编号问题描述影响资产复现步骤严重等级责任人修复方案修复版本复测证据是否影响其他模块是否需要数据补救是否需要用户通知。修复代码合入不等于问题关闭必须完成复测。二十四、发布当天流程推荐顺序冻结高风险变更拉取目标源码版本使用正式配置执行干净构建运行编译、测试、扫描和配置校验生成产物摘要独立复核签名、环境、权限和版本上传与测试一致的产物开启小比例灰度观察登录、崩溃、权限拒绝和核心业务指标达到阈值后逐步扩大异常时立即停止并执行回滚方案保存发布记录和最终结论。不要在发布窗口临时修改未经完整验证的代码或配置。二十五、发布后的安全观察上线后至少持续关注异常登录失败增长令牌刷新错误Cloud DB 权限拒绝跨账号数据投诉崩溃中的文件与网络异常上传失败和异常文件类型旧版本客户端写入第三方 SDK 请求异常权限申请拒绝率注销和删除请求成功率灰度用户反馈依赖新披露漏洞。发布结束并不代表安全责任结束。二十六、总结HarmonyOS NEXT 应用的发布前安全检查应该同时覆盖权限、隐私、密钥、签名、日志、存储、网络、认证、Cloud DB、附件、Web、依赖、备份、测试、灰度和应急。一套可靠流程具有以下特征每项检查都有责任人每个结论都有证据P0/P1 问题可以阻断发布自动化检查进入持续集成门禁人工测试覆盖越权与真实系统场景最终产物与测试产物一致上线支持灰度、监控和快速回滚发布后继续观察安全指标。如果只记住一句话可以记住安全发布不是证明应用绝对没有风险而是证明已知高风险被消除、剩余风险被接受、异常能够被发现并且团队具备立即止损和恢复的能力。
【OpenHarmony/HarmonyOs 】60|HarmonyOS NEXT 发布前安全检查:权限、隐私、密钥、网络与供应链全清单
【OpenHarmony/HarmonyOs 】60HarmonyOS NEXT 发布前安全检查权限、隐私、密钥、网络与供应链全清单发布前安全检查不是上线前临时跑一次扫描工具而是把应用包、源代码、配置、权限、数据流、第三方依赖、日志、云端规则和运营应急串成一条可验证的交付链。本文面向 HarmonyOS NEXT 应用给出一套可直接用于项目评审的安全检查方法并强调每项结论都要有证据而不是凭经验判断“应该没问题”。一、为什么功能完成不等于可以发布应用可能构建成功、页面正常、测试通过但仍然存在调试证书或测试配置进入正式包云服务配置指向错误环境权限声明超出实际需要隐私弹窗与真实数据处理不一致日志输出账号、消息或令牌敏感数据以明文落盘网络请求缺少超时和错误处理第三方依赖含已知漏洞Cloud DB 权限规则过宽备份配置包含不应跨设备恢复的数据测试入口或管理员开关仍可访问崩溃平台上传了未经脱敏的上下文。发布检查的目标是证明风险已被识别、处理并可追踪。二、检查范围要覆盖六个层次源代码层应用配置层构建与签名层数据与网络层云端与第三方服务层发布运营与应急层。只检查客户端代码会遗漏云规则和发布后台配置。三、建立发布阻断机制安全问题应按严重程度分级P0必须阻断发布例如私钥进入应用包、任意用户可读取他人私密数据、认证可绕过。P1修复并复测后才能发布例如敏感日志、权限过度申请、备份范围错误、依赖存在高危漏洞。P2需要明确负责人和修复期限例如低风险信息暴露、非关键接口缺少统一错误页。P3持续改进项例如安全文档、自动化覆盖和体验优化。风险不能仅用“后续优化”结束必须有责任人和截止时间。四、资产与数据流盘点发布前先列出应用处理的资产用户身份标识手机号或邮箱登录令牌聊天消息图片和附件心情与日记内容好友关系设备标识崩溃日志网络状态云数据库对象本地缓存备份数据。对每类数据回答从哪里来、为什么收集、保存在哪里、保存多久、谁能访问、如何删除、是否跨设备或跨境流动。五、权限最小化检查module.json5中的权限声明。requestPermissions: [ {name:ohos.permission.INTERNET}, {name:ohos.permission.GET_NETWORK_INFO} ]每个权限都要对应明确功能。检查原则未使用权限直接删除可用系统 Picker 完成时不扩大长期文件权限运行时权限只在用户触发相关功能时请求拒绝权限后提供可理解的降级路径不把权限请求集中到首次启动权限用途文案与真实行为一致多模块不得重复声明无关权限。六、隐私告知与同意隐私弹窗不能只提供一个“同意”按钮。应确认首次处理个人信息前展示清楚说明数据类型和处理目的隐私政策链接有效用户可以拒绝非必要处理拒绝后应用不会暗中初始化相关 SDK同意状态可持久化政策发生重大变化时重新提示设置页提供查看与撤回入口撤回后停止后续非必要处理注销和删除请求有实际流程。隐私文案必须与代码和服务端行为一致。七、密钥与配置文件重点搜索私钥签名密码管理员令牌云数据库高权限凭据测试账号密码固定访问令牌内部服务地址调试开关证书文件环境配置。客户端包中的内容原则上都可被提取不能把管理员秘密放进应用。普通客户端配置标识与真正的服务端秘密要明确区分。八、签名与构建产物发布构建应验证使用正式签名签名文件不进入版本库密码不写入脚本和日志正式包关闭调试能力正式环境地址正确包名、版本号和渠道正确构建产物可追溯到源码提交构建机权限受控产物生成后计算摘要上传前再次核对签名信息测试包和正式包不会混淆。构建成功只能证明语法与依赖可用不能证明产物安全。九、日志与调试信息禁止在正式环境输出完整令牌密码和验证码聊天正文日记正文完整手机号或邮箱云数据库完整对象文件绝对路径中的个人信息认证响应原文服务端堆栈和内部实现密钥或签名材料。错误日志应记录必要的错误码、脱敏标识和追踪 ID。不要用“方便排查”作为长期保留敏感日志的理由。十、本地存储安全检查 Preferences、数据库、文件和缓存目录。重点确认登录令牌是否按平台安全能力存储密码从不明文保存私密消息是否进入普通缓存临时附件是否及时删除截图、导出和分享是否暴露内容用户退出后是否清理账号相关缓存多账号切换是否发生数据串用本地数据库是否包含不必要字段文件名是否泄露用户身份清理失败是否可重试。数据最小化同样适用于本地存储。十一、备份与恢复安全如果应用声明备份扩展需要检查哪些数据允许备份登录令牌是否被排除设备绑定凭据是否被排除临时缓存是否被排除私密内容是否符合用户预期恢复到新设备后是否重新认证恢复数据是否校验版本多账号数据是否隔离备份失败是否泄露路径和内容删除账号后云备份如何处理。备份便利性不能突破认证和隐私边界。十二、网络通信安全所有生产请求应验证使用安全传输不允许明文回退证书异常时失败关闭请求具备合理超时重试有次数上限和退避幂等接口使用幂等键错误响应不泄露内部信息认证令牌不会进入 URL上传文件校验类型和大小下载文件校验来源和完整性网络切换后状态可恢复代理和异常证书场景经过测试。不要自行实现不成熟的加密协议替代平台和标准协议。十三、认证与会话认证检查包括未登录用户无法进入受保护页面路由参数不能绕过登录守卫令牌过期后安全退出或刷新刷新失败不会无限循环退出登录后清理本地会话多设备会话策略明确用户禁用后会话及时失效游客数据与正式账号合并规则明确敏感操作需要重新确认身份错误提示不泄露账号是否存在。前端隐藏按钮不是授权控制。十四、Cloud DB 访问控制云数据库检查重点用户只能读取授权对象私密日记只对所有者可见好友申请只能由参与者访问聊天消息限制会话成员读取更新操作不能篡改所有者字段删除权限符合业务规则查询条件不能绕过对象权限管理员能力不下放客户端实时订阅遵守同样权限测试环境规则不会复制到生产默认规则不是全开放权限拒绝有安全的客户端处理。必须用不同身份账号做交叉访问测试。十五、输入、输出与文件处理所有外部输入都应视为不可信包括文本框路由参数Deep Link云端字段图片元数据文件名剪贴板分享内容第三方 SDK 回调本地旧版本缓存。检查长度、类型、范围、编码和业务权限。输出到富文本、Web 内容或文件系统时要按目标上下文进行安全处理。十六、图片与附件安全附件功能要验证使用系统选择器限制文件类型限制单文件和总大小检查实际内容而非只看扩展名生成安全文件名防止路径穿越上传失败后清理临时文件下载前确认访问权限分享前二次确认私密内容图片元数据是否需要移除缩略图缓存是否随账号清理恶意或损坏文件不会导致应用崩溃。十七、Web 与外部跳转如果应用包含 Web 组件或外部链接需要检查仅加载允许的协议和域名不信任页面不能调用高权限桥接外部 URL 在打开前校验自定义 Scheme 参数严格解析不允许任意文件访问下载行为需要用户确认页面标题和来源可识别登录令牌不通过 URL 传递返回应用时重新校验状态钓鱼式相似域名被拒绝。十八、第三方 SDK 与依赖依赖检查不是看能否安装而是确认来源可信版本明确锁文件已提交不使用来源不明的二进制已知漏洞经过扫描高危漏洞有处置结论SDK 收集的数据已披露SDK 在同意前不会初始化无用 SDK 已移除权限不会因 SDK 被扩大更新日志经过审阅许可证满足发布要求。供应链风险会直接进入最终应用包。十九、代码与 ArkTS 安全质量重点审查异常被吞掉导致授权失败后继续执行Promise拒绝未处理空值和非法状态导致绕过校验全局单例残留上一个账号数据页面销毁后异步回调仍更新状态订阅监听未解除重复点击触发重复支付或重复写入时间戳主键碰撞客户端仅靠可见性控制权限调试分支进入正式逻辑敏感信息拼接到错误消息随机数用途与安全要求不匹配。严格类型可以减少错误但不能替代安全设计。二十、发布前安全检查清单1. 应用标识检查目标包名、应用名、版本号与发布渠道完全正确。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。2. 正式签名检查目标构建使用正式证书且签名材料未进入仓库。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。3. 调试能力检查目标正式包关闭调试入口、测试菜单与开发者后门。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。4. 环境隔离检查目标正式包只连接生产环境且测试账号不可用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。5. 构建追溯检查目标产物可关联源码版本、构建时间和构建任务。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。6. 产物摘要检查目标上传前记录产物哈希并验证文件未被替换。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。7. 权限清单检查目标每项权限都有当前版本真实功能依据。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。8. 动态授权检查目标敏感权限在用户触发功能时再申请。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。9. 拒绝降级检查目标用户拒绝权限后核心非相关功能仍可使用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。10. 隐私弹窗检查目标首次处理个人信息前完成有效告知。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。11. 隐私政策检查目标政策链接有效且内容与实际数据流一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。12. 撤回同意检查目标设置页可撤回非必要处理并真正停止 SDK。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。13. 账号注销检查目标注销流程可执行且说明数据处理期限。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。14. 数据删除检查目标用户删除内容后客户端与云端行为一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。15. 数据最小化检查目标不采集、不上传、不保留无业务必要字段。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。16. 敏感日志检查目标正式日志不含令牌、密码、正文和完整身份信息。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。17. 崩溃上报检查目标崩溃上下文经过脱敏且符合隐私告知。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。18. 本地令牌检查目标会话凭据使用合适的安全存储机制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。19. 密码处理检查目标密码和验证码不落盘、不打印、不长期驻留。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。20. 缓存隔离检查目标多账号缓存使用独立命名空间并在退出时清理。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。21. 临时文件检查目标上传、裁剪、拍照产生的文件可及时删除。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。22. 备份排除检查目标令牌、设备凭据和临时缓存不进入备份。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。23. 恢复认证检查目标新设备恢复后敏感功能要求重新认证。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。24. 安全传输检查目标生产接口只使用安全传输且不明文回退。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。25. 证书异常检查目标证书错误时请求失败而不是继续连接。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。26. 网络超时检查目标连接、读取和上传均有合理超时。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。27. 有限重试检查目标失败重试有上限、退避并避免重复业务写入。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。28. 令牌位置检查目标认证信息不出现在 URL、日志和分享内容中。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。29. 接口授权检查目标服务端按用户身份校验资源所有权。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。30. 登录守卫检查目标所有受保护路由均不能被参数或跳转绕过。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。31. 会话过期检查目标令牌失效后不会卡死、循环刷新或继续显示私密数据。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。32. 退出清理检查目标退出后清理会话、订阅、缓存和页面栈。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。33. 跨账号测试检查目标账号 A 无法访问账号 B 的数据和附件。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。34. Cloud DB规则检查目标生产规则默认拒绝并按业务最小授权。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。35. 所有者字段检查目标客户端不能把记录所有者篡改为其他用户。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。36. 私密内容检查目标私密日记和消息只对授权参与者可见。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。37. 实时订阅检查目标订阅结果遵守权限且页面销毁后解除监听。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。38. 输入长度检查目标昵称、消息、标签和备注均有服务端与客户端限制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。39. 非法状态检查目标未知枚举、空字段和旧版数据不会绕过校验。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。40. 路由参数检查目标页面参数经过类型、范围和权限验证。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。41. Deep Link检查目标仅允许受信目标且敏感操作要求二次确认。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。42. 附件类型检查目标上传校验实际内容、扩展名、大小与数量。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。43. 附件权限检查目标下载和分享前重新确认访问权限。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。44. 文件路径检查目标文件名规范化并防止路径穿越和覆盖。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。45. 图片隐私检查目标必要时移除定位等元数据并提示分享风险。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。46. Web 白名单检查目标Web 内容仅来自允许的协议和域名。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。47. 桥接权限检查目标不可信 Web 页面无法调用高权限原生能力。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。48. 外部跳转检查目标打开外部页面前校验 URL 并提示离开应用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。49. 依赖来源检查目标所有依赖来源可信且版本受锁文件约束。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。50. 漏洞扫描检查目标高危和严重依赖漏洞已修复或阻断。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。51. SDK 合规检查目标第三方 SDK 的收集行为已披露并受同意控制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。52. 无用依赖检查目标移除未使用的 SDK、权限和模块。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。53. 许可证检查目标依赖许可证满足商业发布和分发要求。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。54. 异常处理检查目标认证、数据库和文件错误不会进入不安全默认状态。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。55. 并发防重检查目标关键按钮和写入接口具备防重复机制。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。56. 主键唯一检查目标业务主键在并发、离线和重试场景下保持唯一。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。57. 数据迁移检查目标新旧版本数据兼容且迁移任务可回滚。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。58. 删除保护检查目标高风险删除操作有确认、授权和审计。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。59. 屏幕隐私检查目标敏感页面按产品要求控制截图与任务预览暴露。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。60. 剪贴板检查目标不自动复制敏感数据且必要时提示用户。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。61. 通知隐私检查目标锁屏通知不直接展示私密消息正文。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。62. 无障碍安全检查目标读屏标签不泄露隐藏字段或完整凭据。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。63. 多窗口检查目标分屏、后台和任务切换不会显示上一个账号敏感内容。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。64. 前后台切换检查目标恢复前台时重新验证会话与页面数据权限。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。65. 截图物料检查目标商店截图和演示数据不包含真实用户信息。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。66. 测试数据检查目标正式包不内置真实账号、聊天记录或密钥。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。67. 资源文件检查目标rawfile、media 和配置中无调试证书与敏感文件。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。68. 代码扫描检查目标仓库已扫描硬编码秘密、危险调用和敏感日志。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。69. 构建检查检查目标全项目正式配置编译成功且无阻断告警。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。70. 测试通过检查目标单元、集成、权限和关键安全用例均通过。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。71. 人工复核检查目标至少一名非实现者完成独立安全复核。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。72. 风险签字检查目标遗留风险有级别、负责人、期限和批准记录。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。73. 灰度策略检查目标首发比例、观察指标和停止条件明确。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。74. 监控告警检查目标认证失败、权限拒绝、崩溃和异常流量可告警。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。75. 应急开关检查目标高风险功能可通过受控配置快速关闭。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。76. 回滚产物检查目标上一稳定版本和回滚步骤已经准备。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。77. 事件响应检查目标安全联系人、升级路径和用户通知模板可用。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。78. 发布后台检查目标商店隐私标签、权限说明和实际版本一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。79. 最终复核检查目标上传产物与已测试产物哈希一致。证据示例配置差异、测试记录、扫描报告、构建日志或审批记录。通过标准结论可复核未解决的 P0/P1 问题数量为零。二十一、自动化检查建议可以在持续集成中自动执行全项目编译Code Linter单元测试依赖漏洞扫描许可证扫描硬编码秘密扫描敏感日志关键字扫描配置文件环境检查产物文件清单检查版本号与包名检查权限清单差异检查构建产物摘要生成。自动化结果应作为发布门禁而不是仅发送一封无人处理的通知。二十二、人工渗透式验证自动化很难替代以下人工场景修改路由参数访问他人页面用账号 A 请求账号 B 的对象登录过期后从后台恢复断网编辑后切换账号再联网拒绝权限后反复进入功能通过分享链接打开已删除内容上传伪装扩展名文件快速重复点击产生并发请求恢复旧备份到新版本使用旧客户端访问迁移后的数据锁屏通知查看私密消息任务预览观察敏感页面残影。测试结论应记录账号、环境、版本、步骤和结果但不能保存真实敏感数据。二十三、发现问题后的闭环每个安全问题记录唯一编号问题描述影响资产复现步骤严重等级责任人修复方案修复版本复测证据是否影响其他模块是否需要数据补救是否需要用户通知。修复代码合入不等于问题关闭必须完成复测。二十四、发布当天流程推荐顺序冻结高风险变更拉取目标源码版本使用正式配置执行干净构建运行编译、测试、扫描和配置校验生成产物摘要独立复核签名、环境、权限和版本上传与测试一致的产物开启小比例灰度观察登录、崩溃、权限拒绝和核心业务指标达到阈值后逐步扩大异常时立即停止并执行回滚方案保存发布记录和最终结论。不要在发布窗口临时修改未经完整验证的代码或配置。二十五、发布后的安全观察上线后至少持续关注异常登录失败增长令牌刷新错误Cloud DB 权限拒绝跨账号数据投诉崩溃中的文件与网络异常上传失败和异常文件类型旧版本客户端写入第三方 SDK 请求异常权限申请拒绝率注销和删除请求成功率灰度用户反馈依赖新披露漏洞。发布结束并不代表安全责任结束。二十六、总结HarmonyOS NEXT 应用的发布前安全检查应该同时覆盖权限、隐私、密钥、签名、日志、存储、网络、认证、Cloud DB、附件、Web、依赖、备份、测试、灰度和应急。一套可靠流程具有以下特征每项检查都有责任人每个结论都有证据P0/P1 问题可以阻断发布自动化检查进入持续集成门禁人工测试覆盖越权与真实系统场景最终产物与测试产物一致上线支持灰度、监控和快速回滚发布后继续观察安全指标。如果只记住一句话可以记住安全发布不是证明应用绝对没有风险而是证明已知高风险被消除、剩余风险被接受、异常能够被发现并且团队具备立即止损和恢复的能力。