鸿蒙0基础学习【设置分布式文件数据等级】文件基础服务
HarmonyOS通过数据分级和设备分级机制保障敏感信息安全。该系统支持为文件设置安全标签(S0-S4等级),低安全等级设备将无法访问高密级数据。开发者可通过setSecurityLabel和getSecurityLabel接口同步/异步设置或获取文件安全等级,未达标设备仅可见文件但无法打开。示例代码演示了如何获取沙箱路径并设置文件为最高安全等级S0。这种分层安全策略有效解决了嵌入式设备与智能终端
·
不同设备本身的安全能力差异较大,一些小的嵌入式设备安全能力远弱于平板等设备类型。用户或者应用不同的文件数据有不同安全诉求,例如个人的健康信息和银行卡信息等不期望被弱设备读取。因此,HarmonyOS提供一套完整的数据分级、设备分级标准,并针对不同设备制定不同的数据流转策略
接口说明
表1 设置文件数据等级,其中“√”表示支持。
| 接口名 | 功能 | 接口类型 | 支持同步 | 支持异步 |
|---|---|---|---|---|
| setSecurityLabel | 设置文件安全标签。 | 方法 | √ | √ |
| getSecurityLabel | 获取文件安全标签。 | 方法 | √ | √ |
注意
- 对于不满足安全等级的文件,跨设备仍然可以看到该文件,但是无权限打开访问该文件。
- 分布式文件系统的数据等级默认为S3,应用可以主动设置文件的安全等级。
开发示例
获取通用文件沙箱路径,并设置数据等级标签。
import { securityLabel } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';
import { fileIo as fs } from '@kit.CoreFileKit';
// 获取需要设备数据等级的文件沙箱路径,请在组件内获取context,确保this.getUIContext().getHostContext()返回结果为UIAbilityContext
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let pathDir = context.filesDir;
let filePath = pathDir + '/test.txt';
//打开文件
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
// 设置文件的数据等级为s0
securityLabel.setSecurityLabel(filePath, 's0').then(() => {
console.info('Succeeded in setSecurityLabeling.');
fs.closeSync(file);
}).catch((err: BusinessError) => {
console.error(`Failed to setSecurityLabel. Code: ${err.code}, message: ${err.message}`);
});
更多鸿蒙开发系统学习:

尽在↓
更多推荐



所有评论(0)