如何确保iOS中的ObjectiveC字符串的释放内存安全?

问题描述

| 我是iOS开发的新手,我有以下问题: 在我的代码中,我有一个带有UIText字段的UIViewController,当用户在视图中键入内容时,该字段将保存密码。该密码用于在服务器前端进行身份验证:
UItextField* txtPassword;
[myClass loginWithPassword:txtPassword.text];
使用完后,我想确保内存中没有密码遗留的部分,因此攻击者将无法执行iPhone的内存转储并从中提取密码。 例如,在Windows中,我可以使用SeucreZeroMemory函数用零填充内存块。 在iOS上最好的方法是什么?谁负责释放
UItextField*
字符串,这够吗?     

解决方法

        确实不需要什么,不需要在分配的数据上写零以确保数据的安全性。原因是没有人可以访问内存,iOS使用地址空间随机化,因此即使有可能获取内存,也很难猜测数据在哪里(并且如果不知道数据在哪里)是,很难猜测出数据到底是什么,幸运的是,RAM没有在这种情况下有帮助的文件系统。 第二件事是,如果您使用
[foo release]
,并且在此过程中释放了文本字段,则OS会回收内存。现在,操作系统将始终将零填充到新的内存页面上,然后再进行询问,因此您不必担心会有一个恶意应用程序只是分配内存,以期希望以此方式找到密码。     ,        好, 通过进入dealloc方法,释放将密码存储在类中的对象。 或在该对象使用完毕后释放。 希望对您有帮助。