open harmony 项目实战:从少权限到本地化,聊聊教育 App 的安全隐私设计

发布时间:2026/7/1 3:05:10
open harmony 项目实战:从少权限到本地化,聊聊教育 App 的安全隐私设计 open harmony 项目实战从少权限到本地化聊聊教育 App 的安全隐私设计教育类 App 的隐私设计非常重要尤其是面向学生或语文学习场景时更应该坚持“能不拿就不拿能本地就本地”的原则。我的“语文视界”项目目前没有接入相机、图库、定位、通讯录等敏感能力也没有在module.json5中申请额外危险权限。对于这类以诗词、阅读、字典、学习打卡为核心的应用来说少权限本身就是一种安全设计 。一、权限最小化不为了功能感而过度索权项目的module.json5主要配置了入口 Ability、设备类型和备份扩展没有配置相机、图片读取、定位等敏感权限。{module: {name:entry,type:entry,deviceTypes: [phone,tablet],abilities: [ {name:EntryAbility,exported: true } ] } }这意味着当前 App 的核心能力都可以在不采集图片、不调用摄像头、不读取相册的前提下完成。对应到主题中的“禁止 AI 识图”这个项目可以这样表达语文学习功能不依赖用户图片识别不采集用户图像内容避免把学习行为扩大到不必要的图像隐私范围。二、本地状态收藏、历史、打卡都保存在端侧项目使用AppStorage保存收藏列表、阅读历史和学习打卡状态。这些数据只服务于本机体验不需要上传到服务器。privatesaveFavorites(): void {AppStorage.setOrCreate(poetry_favorites, JSON.stringify(this.favoriteIds)); }privatesaveReadHistory(): void {AppStorage.setOrCreate(poetry_read_history, JSON.stringify(this.readHistoryIds)); }学习打卡也是类似思路privatesavePersistedData(): void {AppStorage.setOrCreate(learn_streak,this.currentStreak);AppStorage.setOrCreate(learn_checkin_today,this.todayCompleted);AppStorage.setOrCreate(learn_checkin_dates,this.checkInDatesStr);AppStorage.setOrCreate(learn_last_checkin_date,this.getTodayDate()); }端侧保存的好处是非常直接用户的学习偏好、收藏记录、连续学习天数都不必离开设备。三、精细化数据边界只存业务必要字段以收藏功能为例项目并没有保存整首诗的所有内容而是保存诗词 id 列表。真正展示时再从本地题库中查找。publicgetFavoriteList(): Poetry[] {constfavorites: Poetry[] [];for(constid ofthis.favoriteIds) {constpoetry this.poetryCache.get(id);if(poetry) {constcopy new Poetry(poetry); copy.isFavorite true; favorites.push(copy); } }returnfavorites; }这个设计很适合教育类 App收藏记录只需要记录“用户收藏了哪一首”不需要额外记录用户身份、位置、设备通讯录等无关信息。四、备份恢复方便用户但要保持边界清晰项目配置了备份扩展{allowToBackupRestore:true}并实现了EntryBackupAbilityexportdefaultclassEntryBackupAbilityextendsBackupExtensionAbility{asynconBackup() { hilog.info(DOMAIN,testTag,onBackup ok);awaitPromise.resolve(); }asynconRestore(bundleVersion: BundleVersion) { hilog.info(DOMAIN,testTag,onRestore ok %{public}s,JSON.stringify(bundleVersion));awaitPromise.resolve(); } }这为后续迁移学习数据提供了基础。但在正式产品中建议继续明确哪些数据可备份、哪些数据不备份并在隐私政策中说明。五、后续可以增强的隐私方案如果继续完善安全隐私主题我会优先做这些增加隐私说明页列出 App 不采集相机、相册、定位等敏感信息。对反馈入口增加输入提示提醒用户不要提交手机号、身份证号等敏感内容。如果未来接入 AI 能力默认禁止上传图片仅允许处理本地文本。对备份恢复数据做版本管理避免旧数据结构恢复失败。总结安全隐私不是等项目上线前才补的功能而应该从产品设计一开始就确定边界。对于“语文视界”这样的教育 App最稳妥的方向就是少权限、本地化、最小化存储、明确反馈边界。技术上看似朴素但对用户来说这就是可信任的基础 。