繁体   English   中英

如何保护iOS中objectiveC字符串的dealloc memory?

[英]How to secure dealloc memory for objectiveC Strings in iOS?

我是 iOS 开发的新手,我有以下问题:在我的代码中,我有一个带有 UIText 字段的 UIViewController,当用户在视图中键入时,该字段将保存密码。 密码用于在服务器前进行身份验证:

UItextField* txtPassword;
[myClass loginWithPassword:txtPassword.text];

使用它后,我想确保 memory 中没有密码残留,因此攻击者将无法执行 iPhone 的 memory 转储并从中提取密码。

例如,在 windows 中,我可以使用 SeucreZeroMemory function 用零填充 memory 块。

iOS 的最佳方法是什么? 谁负责释放UItextField*字符串,这是否足够?

您确实不需要您想要的,您无需在分配的数据上写零以确保它是安全的。 原因是除了您之外没有人可以访问 memory 和 iOS 使用地址空间随机化,因此即使有可能获得您的 memory,如果您的数据在哪里,也很难猜到,很难猜出数据到底是什么,幸运的是 RAM 没有文件系统可以在这种情况下提供帮助)。 第二件事是,如果您使用[foo release]并且您的文本字段在此过程中被释放,操作系统将回收 memory。 现在操作系统在将新的 memory 页面提供给询问进程之前总是会用零填充新的页面,因此您不必担心有一个恶意应用程序只是分配 memory 以希望通过这种方式找到密码。

好的,通过进入 dealloc 方法释放您的 object,它将密码存储在您的 class 中。 或者在 object 的使用完成时释放。通过写这个 [object release]; 我希望它会帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM