本文档详细介绍了监控敏感活动(如用户登录和在线购买)的方法。
FLAG_SECURE
FLAG_SECURE
是一个 窗口标志,它指示 Android 不允许截取屏幕截图或在非安全显示设备(例如投屏)上显示窗口视图。这对于需要保护敏感信息的应用(如银行应用或密码管理器)非常有用。当窗口带有 FLAG_SECURE
标志时,Android 会阻止截取屏幕截图,并阻止窗口显示在非安全显示设备(如电视或投影仪)上。这有助于保护窗口中显示的信息不被未经授权的人员访问。
这如何帮助防范欺诈
恶意应用或实体可能会检索后台屏幕截图。当您的应用状态切换到后台时,可以使用 FLAG_SECURE
。截取屏幕截图后,所得图像将为空白。
FLAG_SECURE
还有助于远程屏幕共享用例。并非总是恶意应用会检索屏幕截图,合法的屏幕共享应用也常被发现用于欺诈情况。
实现
对于您希望受保护的信息视图,请添加以下内容
Kotlin
window?.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE )
Java
window.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE );
最佳实践
值得注意的是,此方法在防止叠加攻击方面并不可靠。在某些情况下,它无法正确预测屏幕录制是否处于活动状态,但它确实涵盖了大多数用例。要缓解叠加攻击,请阅读关于 HIDE_OVERLAY_WINDOWS
权限的下一部分。
HIDE_OVERLAY_WINDOWS
HIDE_OVERLAY_WINDOWS
是 Android 12 中添加的一项权限,您的应用可以选择不在其上方绘制应用叠加层。在 Android 12 中,我们已更难获取 SYSTEM_ALERT_WINDOW
权限,这实质上允许您的应用阻止来自第三方应用的叠加层。
这如何帮助防范欺诈
当您启用 HIDE_OVERLAY_WINDOWS
权限时,您选择不允许在您的应用顶部绘制应用叠加层。此权限提供了一种针对 “斗篷与匕首” 攻击的保护机制。
实现
要启用此权限,请将 HIDE_OVERLAY_WINDOWS
添加到您的项目清单中。
最佳实践
与任何权限一样,您应该至少像信任设备上任何其他应用一样信任任何叠加应用。换句话说,除非您知道其他应用是可信的,否则您的应用不应允许其他应用在其上方绘制叠加层。允许应用在其他应用上方绘制叠加层是危险的,因为它可能会窃取密码或读取消息。