本文档详细介绍了如何监控敏感活动,例如用户登录和在线购买。
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
权限时,您选择不将应用覆盖层绘制在应用之上。此权限提供了一种针对 cloak and dagger 攻击的保护机制。
实施
要启用此权限,请将 HIDE_OVERLAY_WINDOWS
添加到项目的清单中。
最佳实践
与任何权限一样,您应该至少像信任设备上的任何其他应用一样信任任何覆盖层应用。换句话说,除非您知道其他应用是可信的,否则您的应用不应允许其他应用在其上绘制覆盖层。允许应用绘制其他应用的覆盖层可能很危险,因为它可能窃取密码或读取消息。