沙盒机制

沙盒机制
    1.每一个APP安装到手机上(或者模拟器上)都会自动生成3个文件夹 这三个文件夹 ( Documents ,Library(Caches ,Preferences), tmp )   可以理解为这个 App 的沙盒
    2. 并且   每个 APP 的文件夹 都是相对独立的 只能自己的应用去访问   不可以互相访问
    3. 文件夹中   存储的是代码以外的 所有数据 例如 ( 图片素材 声音 视频 文档等 ) 也就是说 咱们的持久化文件 ( 缓存文件 ) 可以存储到 文件夹中
-----------------------------------------------------------------------

打印沙盒的各个文件夹路径
- (void)path
{

     每一次运行的时候(在重新运行模拟器中)  都是重新安装的过程 
    都会随机生成一个新的沙盒路径(名字是随机的)
    
注意:要获取的是当前的沙盒路径
     
    打印沙盒主路径
   NSString *appPath =NSHomeDirectory();
   
NSLog(@"%@",appPath);
   
    Documents 文件夹
    可以被 iTunes 备份 可以保存一些用户的数据 及缓存文件等
    NSDocumentDirectory要获取的文件夹路径
   NSUserDomainMask搜索范围
   YES是否获取全路径
   NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,NO);
   
NSString *documentsPath = [documents lastObject];
   
   
NSLog(@"%@",documentsPath);
   
    获取Library文件夹路径
    Library 可以被 iTunes 备份
    Caches 主要存储系统缓存文件
    Preferences 系统配置文件
   NSArray *library =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
   
NSString *libraryPath = [library firstObject];
   
NSLog(@"%@",libraryPath);
   
    获取tmp文件夹
    主要存储临时文件
    当手机重新启动时 该文件夹的文件会被删除
    (有可能不重启也会被删除)
   NSString *tmp =NSTemporaryDirectory();
   
NSLog(@"%@",tmp);
   
}
-----------------------------------------------------------------------


简单对象的写入
系统的类实例出来的对象叫简单对象
例如:字符串 字典 数组 二进制对象(NSData)
如果要写入一个数组或者字典等容器类对象
那么这个容器当中也要保存是 简单对象才能写入
- (void)writeFile
{
    把字符串存储到沙盒当中
   NSString *str =@"第一章盘古开天";
    xiaoshuo.txt
    拼接文件存储的路径
   
   
NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
   
NSString *documentPath = [documents firstObject];
   
   
NSString *filePath = [documentPathstringByAppendingPathComponent:@"/xiaoshuo.txt"];
   
NSLog(@"%@",filePath);
   
    进行简单对象的写入
     atomically保护写入作用
    在写入过程中出现意外情况也可以写入成功
   [strwriteToFile:filePathatomically:YESencoding:NSUTF8StringEncodingerror:nil];
   
 
写入一个数组
   NSArray *array = @[@"
### 沙盒机制的定义 沙盒机制是一种安全隔离技术,用于为应用程序提供一个受限的运行环境。在这个环境中,程序的行为受到严格控制,无法访问未授权的资源或与其他进程交互[^1]。 ### 沙盒机制的作用 的主要作用是保护系统的整体安全性与稳定性。通过将不同应用或进程隔离开来,即使某一部分出现问题(如恶意代码执行或软件崩溃),也不会波及其他部分或整个系统。具体而言: - 浏览器中的可以防止网页脚本访问用户的敏感数据或其他标签页的内容[^1]。 - Android 中的应用能够确保每个应用仅能访问其声明并获得许可的资源,从而减少潜在的安全风险[^3]。 - Linux 和其他操作系统层面的可以通过分配独立的用户 ID 来进一步增强隔离效果[^5]。 ### 实现方式 #### 1. **浏览器** - 浏览器会为每一个网站或标签页创建单独的进程,并限制这些进程对外部资源的访问能力。例如,在 Chrome 中,渲染器进程会被置于低权限状态,任何试图突破此限制的操作都将失败[^1]。 #### 2. **移动平台 (Android)** - 应用安装时由 `PackageManagerService` 分配唯一的 UID/GID 组合给该应用,所有的文件操作都绑定到这一组标识符下。此外,框架层还会维护一份权限清单 (`packages.xml`) ,记录各包名对应的已授予权限情况。当尝试访问受控 API 或者特定目录时,系统会依据当前上下文中保存的信息决定是否允许继续执行下去[^3][^5]。 文件存储方面也有类似的分区处理策略,比如 `/storage/emulated/0/Android/sandbox/<packagename>/...` 路径下的内容只对该 App 可见[^2]。 #### 3. **iOS 编程中的 NSCoding 协议支持** 对象持久化过程中涉及序列化和反序列化的场景也可以看作一种形式的数据箱防护措施之一。开发者需明确指定哪些字段应该参与编码过程以及采用何种方式进行转换,以此降低因不当恢复而导致安全隐患的可能性[^4]: ```objc -(instancetype)initWithCoder:(NSCoder *)aDecoder { if (self = [super init]) { self.age = [aDecoder decodeIntForKey:@"age"]; } return self; } ``` 综上所述,无论是在 Web 领域还是本地计算环境下,“”都是保障信息安全不可或缺的一部分;它通过对目标实体施加约束条件达到预期目的的同时还兼顾灵活性以便满足实际需求变化的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值