ios-在NSString中安全的归零内存

问题描述

在NSString中安全的归零内存

在ios开发中,能否用下面代码读取用户密码值:

NSString* strPwd = UITextField.text;

//Check 'strPwd'
...

//如何从RAM中清除'strPwd'?

不希望在RAM中保留这些敏感字符,怎么样能把他们归零?

解决方案

简单说,不能,这个是apple的一个bug。

apple的bug文件中有对这个问题的说明,这是UITextField和NSString的问题。

Apple Bug Reporter

时间: 2024-11-05 14:50:33

ios-在NSString中安全的归零内存的相关文章

《iOS应用开发》——2.3节内存管理

2.3 内存管理 iOS应用开发 我不是吓唬你们.在iOS 5.0系统之前,内存管理毫无疑问是iOS开发最困难的部分.简而言之,问题是这样的.无论何时你创建了一个变量,你就要在内存中给它分配一定的空间.对于局部变量来说,我们通常使用栈上的内存,这些内存是自动管理的,当函数返回时,函数中定义的任何局部变量都会从内存中自动删除. 这听起来很棒,但是栈有两个严重的局限.首先,它的空间非常有限,如果用尽了内存,应用程序就会崩溃.其次,这些变量很难共享.请记住,函数使用值传参和返回.这意味着所有传入函数或

iOS在应用中添加自定义字体

iOS在应用中添加自定义字体 一.在应用中添加自定义字体的步骤 1.网上提供的字体库有很多,下载完成后,将其导入工程中,一般为ttf格式. 2.注意Build Phases中的Copy Bundle Resources中是否导入了文件: 3.在项目的info.plist文件中添加字体键值如下: 这个数组中可以添加多个元素,多个字体库. 4.这时实际上我们已经将字体添加进了工程中,但是在在使用这个字体时,字体的名字有时和文件名是不一样的,我们需要知道真实的字体名称,通常情况下,我们会讲所有字体名称

在iOS应用程序中使用Frida绕过越狱检测

 您当前的位置: 安全博客 >  技术研究 >  在iOS应用程序中使用Frida绕过越狱检测          阿里聚安全在之前的三篇博客中介绍了利用Frida攻击Android应用程序,整个过程仿佛让开发者开启上帝视角,在本篇博客中,我们将会介绍在iOS应用程序中使用Frida绕过越狱检测.即使你从来没有使用过Frida,这篇文章也将会作为进入移动安全开发和分析的入门指南. 相关文章内容: 利用FRIDA攻击Android应用程序(一) 利用FRIDA攻击Android应用程序(二) 利用

ios 电话-iOS 一个项目中调用了系统的打电话功能但无法实现点击按钮挂断电话

问题描述 iOS 一个项目中调用了系统的打电话功能但无法实现点击按钮挂断电话 调用打电话代码: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",phone]]]; 然后怎么在项目中实现点击按钮挂断电话...... 解决方案 http://www.cocoachina.com/bbs/read.php?tid=458505 解决方案二:

nsstring-动态添加字符串到NSString中

问题描述 动态添加字符串到NSString中 NSString的内容来自一个URL,我希望添加一些字符串到里面.而且这个NSString会实时改变. 比如: 获取的数据是:" hi mac this is ios"然后字符串就会改变为:" hi ios this mac" or hi this is mac ios" 在mac后面就加上hello:变成这样: " hi mac hello this is ios" " hi i

iOS App开发中使cell高度自适应的黑魔法详解_IOS

在使用 table view 的时侯经常会遇到这样的需求:table view 的 cell 中的内容是动态的,导致在开发的时候不知道一个 cell 的高度具体是多少,所以需要提供一个计算 cell 高度的算法,在每次加载到这个 cell 的时候计算出 cell 真正的高度. 在 iOS 8 之前 没有使用 Autolayout 的情况下,需要实现 table view delegate 的 tableView(tableView: UITableView, heightForRowAtInde

Swift开发iOS应用过程中的问题和解决记录

Swift开发iOS应用过程中的问题和解决记录 虚拟机里安装OSX+XCode开发环境 用真机的请直接跳过这个部分. 主要是在VitrualBox里安装mac系统和xcode,参考这篇教程,VirtualBox的版本是4.3.18 r96156,OSX版本是10.11 El Capitan,XCode版本是7.1 (7B91b). 经过几天的初步使用,感觉用虚拟机开发iOS基本能够满足要求,i5/8g/ssd的配置目测能达到真机70%的开发效率.主要存在的问题是:1)在宽屏上无法满屏,两边会留有

ios-安卓和IOS有没有中文文档呢,我英文不好?

问题描述 安卓和IOS有没有中文文档呢,我英文不好? 安卓和IOS有没有中文文档?我英文不太好,看不懂英文的,有没有全中文的,不经简单翻译的 解决方案 下个有道词典,直接屏幕取词,没人能每个单词都会,主要要耐心看 解决方案二: 哈皮还是看英文的吧,看看就明白了 解决方案三: 看的多了就明白了,英语差不多的话,就能发现不会的就那么几个关键的词 解决方案四: 这个必须自己适应吧,毕竟各大技术网站还是英文的居多,API也是英文的,一点点积累吧 解决方案五: 一开始都会有这样的烦恼,那么多英文想想都头疼

为什么不能再构造函数中执行大量的内存分配、文件读写等复杂操作??

问题描述 为什么不能再构造函数中执行大量的内存分配.文件读写等复杂操作?? 大婶们啊:为什么不能再构造函数中执行大量的内存分配.文件读写等复杂操作??? 解决方案 可以啊!谁告诉你不行的? 只是在构造函数做太复杂的操作,当出错时发现错误有时会很困难.特别是定义为全局变量时,程序还没有运行.就出错了. 解决方案二: 构造函数主要进行一些初始化工作,复杂的工作放到成员函数中处理,这样比较符合OOP设计 解决方案三: 以牺牲对象分配的时间来换取代码的简单行· 是可以的·! 但是不推荐 解决方案四: 这