wol*_*ats 8 security cocoa cocoa-touch memory-management objective-c
在iOS上,我想知道,如果我读取用户提供的密码值如下:
NSString* strPwd = UITextField.text;
//Check 'strPwd'
...
//How to clear out 'strPwd' from RAM?
Run Code Online (Sandbox Code Playgroud)
我只是不喜欢将敏感数据"悬挂"在RAM中.知道怎么把它归零吗?
基本上你真的不能.Apple在这个问题上存在漏洞.此外,存在问题UITextField
并且NSString
至少存在问题.
重申@Leo Natan现在删除的答案中的评论:
释放封闭的NSString对象并不能保证字符串字节在内存中是零.此外,如果一个设备被越狱,所有沙盒苹果承诺将毫无用处.但是,在这种情况下,几乎没有人可以做,因为可以在应用程序运行的中间交换整个运行时,这从内存中获取密码.
请提交苹果的另一个错误请求,越多越好.