每次出现应用安全问题时,很多人都没有意识到这是一个问题。例如,每次我们的 App 进入后台时,iOS 都会截取可见屏幕的屏幕截图并将其存储在本地存储中。
现在这就是我想要摆脱的东西。我正在开发一个进行在线金融交易的应用程序,我希望我的应用程序在安全方面非常强大。这是当我的应用程序进入后台时存储屏幕截图的路径。
路径:/private/var/mobile/Applications/15980ADD-B269-4EBE-9F52- B6275AFB195A/Library/Caches/Snapshots/com.ABC.myAppName/screenshotName.PNG
这是正在存储的图像,看起来非常关键:
如果用户输入了他/她的信用卡/借记卡号码(包括 CVV2 号码和其他重要信息)并且可能会强制应用程序在后台运行一段时间,则情况会更加严重。
我对此进行了一些搜索,我了解到,对于能够利用此攻击的攻击者,他可以通过两种方式获得访问权限:
攻击者需要对设备进行物理访问,目的是 越狱。
需要与越狱用户在同一个网络上 设备并尝试远程访问该设备。
我可以做些什么来避免这种情况发生?是否有任何解决方案可以避免攻击者以这种方式访问敏感信息?
此外,当应用程序处于后台时,我还得到了启用空白屏幕截图或删除应用程序屏幕截图的建议。但是,我不知道该选择什么以及如何正确选择。还有其他选择吗?
最佳答案
我可以提出一些建议:
1) 您知道您的应用程序何时将通过应用程序委托(delegate)方法进入后台
:
- (void) applicationDidEnterBackground:(UIApplication *)application
That's the exact moment the snapshot is generated .为什么不改变您的观点,使其变得不同或更“安全”?
2)
如果您希望在将应用程序带回前台时忽略“安全”(或虚假)快照,您可以使用“[UIApplication ignoreSnapshotOnNextApplicationLaunch]
”。
3)
您还可以在将您的应用程序置于后台时将“UIApplicationExitsOnSuspend
”添加到您的应用程序的 Info.plist 中,这将完全终止您的应用程序并且不保存快照。
关于iOS 每次将 App 发送到后台时都会对其进行截图 - 我将如何保护我的 App?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27265957/