如何停止通过多任务泄漏信息

当我们谈论有关iOS应用程序的安全性时,我们通常会考虑诸如SSL证书,将信息安全地存储在钥匙串中之类的事情。
这一切都很好,而且我们现在如此广泛地关注是一件非常了不起的事情。 但是,有一个小的罪魁祸首是许多应用程序制造商似乎忽略了,我不怪他们。

我说的是操作系统内置的多任务处理功能。 那么,是什么使它成为罪魁祸首? 好吧,基本上,如果用户决定退出您的应用程序,则操作系统将为当前视图控制器的当前状态制作快照,并将其保存为应用程序的占位符。 但是,如果您刚离开的屏幕上有一些您不想离开应用程序的个人信息,该怎么办。 也许您正在使用银行应用程序,而同事或朋友借用您的电话,则他或他将能够阅读您上次使用该应用程序查看的部分信息。 听起来好像我过度夸大或出于非问题而提出了问题。 也许吧,也许不是。 我所知道的是,如果我使用存储个人或敏感信息的应用程序,则希望它保留在该应用程序内,而不会以任何方式,形状或形式泄漏。

因此,这就是我们为应用程序增加一些额外安全性所做的工作。
因为我们不确切知道哪个屏幕应该安全或哪个屏幕可以显示,所以我们采取了尝试保护整个应用程序的路径。 这就是我们所做的。

在构建iOS应用程序时,您需要提供一个应用程序委托。 此类具有在我们的应用程序的上下文更改时被调用的方法。 我们将使用应用程序委托监听的两种情况是:

  • func applicationDidBecomeActive( _ application:UIApplication)
  • func applicationWillResignActive( _ application:UIApplication)

您可能已经知道很多,即使您不知道。 您可能会猜测何时调用这些方法。 当我们的应用程序变为活动状态时,第一个被调用,而当用户离开我们的应用程序时,第二个将被调用。

因此,为了增加一点安全性,我们将使用模糊的视图简单地覆盖当前窗口,以免撬开的眼睛看不到屏幕上正在显示的内容。 使用模糊功能不是最安全的选择,但是暂时,我们只希望在有人借用电话时将可以直接访问电话的人拒之门外。 如果需要更高的安全性,则可以显示应用程序启动屏幕或猫的图片。 由你决定。

聊够了,让我们看一下代码。

请记住,仅添加一点点的安全性是不够的,您可能想要添加一个密码屏幕并执行通常执行的所有其他与安全性相关的任务。 这只是为了防止您的应用向iOS上的多任务功能泄漏信息。