美文网首页
数据擦除

数据擦除

作者: 无沣 | 来源:发表于2017-05-06 13:50 被阅读21次

对于敏感数据,我们不希望长时间放在内存中,而希望使用完后立即就被释放掉。

但是不管是 ARC 还是 MRC,自动释放池也有轮循工作周期,我们都无法控制内存数据被擦除的准确时间,让 hackers 们有机可乘。 本文介绍一个小技巧——及时数据擦除。

假如一个 View Controller A的一个数据被绑在一个 property 上,

@interface WipingMemoryViewController : UIViewController

@property (nonatomic,copy) NSString *text;

@end

当 A push 到另外一个 View Controller B 时,该数据还是有可能被读到的

WipingMemoryViewController *lastController = (WipingMemoryViewController *)self.navigationController.viewControllers[0];

NSLog(@"text = %@",lastController.text);

于是,“用后即擦”变得十分必要:

_text = [[NSString alloc]initWithFormat:@"information"];

NSLog(@"Origal string = %@",_text);

//do something...

charchar *string = (charchar *)CFStringGetCStringPtr((CFStringRef)_text, CFStringGetSystemEncoding());

memset(string, 0, [_text length]);

NSLog(@"final text = %@",_text);

Log 输出如下:

WipingMemory[2518:70b] Origal string = information

WipingMemory[2518:70b] final text =

可以看到,我们想要保护的数据,被有效的擦除了。

还有提个醒,如果是这样

_text = @"information";

创建的字符串,是会被分配到 data 区,而是无法修改的。

如果有兴趣也有闲心,可以试试运行下面的代码,有彩蛋哦:

_text = @"information";

memset((__bridge voidvoid *)(_text), 0, _text.length - 1);

NSString *myString = [[NSString alloc]initWithFormat:@"information"];

NSLog(@"Origal text : %@ \n",myString);

编译器把两个 information 的省略到一个地址了~

相关文章

  • 阿斯加德报告

    新历201年【数据被擦除】 【数据被擦除】 新历201年■■月■■日于【数据被删除】北方34公里处【数据被...

  • 数据擦除

    对于敏感数据,我们不希望长时间放在内存中,而希望使用完后立即就被释放掉。 但是不管是 ARC 还是 MRC,自动释...

  • python 写入文件

    --写入 写数据有几种不同的模式,最常用的是w’, ‘a’, 分别表示擦除原有数据再写入和将数据写到原数据之后:是...

  • stm8s--eeprom

    要点,擦除数据就是写入0 1.寄存器操作 2库函数操作

  • 矢量数据的空间分析——叠加分析

    叠加分析是对不同的数据进行一系列的集合运算,常用于提取要素的空间隐含信息。 1.擦除分析: 擦除分析是将输入要素中...

  • u-boot之Nand Flash操作

    擦除Nand Flash (1)整片擦除 nand erase.chip (2)分区擦除 nand erase.p...

  • 擦除容易碰到的问题

    这周在做沙漠绿洲的提取分级工作,需要根据沙漠的边界数据建立2级缓冲区,然后再将2级别缓冲区进行擦除,擦除时总是遇到...

  • 图片擦除

    图片擦除思路.弄两个不同的图片.上面一张, 下面一张.添加手势,手指在上面移动,擦除图片.擦除前要先确定好擦除区域...

  • [译]Swift 中的类型擦除

    你可能听过这个术语 :类型擦除。甚至你也用过标准库中的类型擦除(AnySequence)。但是具体什么是类型擦除,...

  • Basic Sky Replacement——AK01

    选中新的天空,效果——过渡——线性擦除 {线性擦除效果讲解:过渡完成——百分比例;擦出角度——控制擦除方向;羽化—...

网友评论

      本文标题:数据擦除

      本文链接:https://www.haomeiwen.com/subject/whgetxtx.html