屏幕外信息有多安全?

Ran*_*lue 5 security lockscreen ios uiscreen wkwebview

我的iOS应用程序有一个锁定屏幕,启用后会覆盖整个屏幕UIScreen.但是,在UIScreen界限之外,我的窗格中包含锁定屏幕未覆盖的敏感信息.(当屏幕解锁时,可以刷入和滑出这些窗格.)

如何获得超出UIScreen界限的信息有多安全?攻击者可以使用某种外部显示器,调试器或其他一些机制来"揭示" UIScreen屏幕外的内容吗?

[锁定屏幕WKWebView默认具有"放大镜"功能.我发现,当在边缘处触发时UIScreen,放大镜显示UIScreen边缘后面的几个像素.我已经用这个答案禁用了放大镜.]

JAL*_*JAL 9

屏幕外的"隐藏"视图根本不安全.任何拥有越狱设备的人都可以在运行时使用MobileSubstrate挂钩到您的应用程序并调用[[[UIApplication sharedApplication] keyWindow] recursiveDescription]转储视图层次结构.还有一些工具,如RevealSpark Inspector,提供类似于Xcode视图调试器的界面,以查看应用程序中当前的任何视图UIWindow.

正如zambrey建议的那样,最好根据需要初始化具有敏感信息的任何视图,并在用户不再需要时删除它们,而不是将它们保持在视图之外但仍然在窗口层次结构中.这样做的好处不仅仅是安全性,而且内存中的视图较少会提高应用程序的性能并减少内存占用.

如果您担心安全性,可能需要在运行时检查越狱设备并限制这些设备的某些功能.


pab*_*art 5

从技术上讲,内存中的任何内容都可以在越狱设备上暴露出来.将敏感视图隐藏在当前显示的内容之外并不是一种安全措施.一旦设备被越狱,这些视图的视图和内容将被暴露.即使您将密码文本字段设置为"secureTextEntry",即使您将其隐藏,只要未释放文本字段,就可以使用附加到应用程序的调试程序读取内容.即使取消分配文本字段,也可以转储内存,如果该内存尚未被覆盖,则可能会找到该视图的内容.

现在,如果您不担心Jailbroken场景,并且您只想找到其他选项,其中有非越狱设备的人可以探索视图,您应该检查iOS中包含辅助功能.如果未正确禁用该视图中的辅助功能,VoiceOver将能够读出隐藏的大声文本.从辅助功能工具中删除视图有时很棘手,因为父级的更改可能会影响所有子视图(请阅读UIAccessibility文档)

设置accessibilityElementsHiddenYES父视图或isAccessibilityElementNO在视图中,应该工作.