保护敏感活动

本文档详细介绍了监控敏感活动(例如用户登录)的方法 和网上购买。

FLAG_SECURE 标记

FLAG_SECURE 是一个 Window 标志,用于告知 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 添加到项目的 清单。

最佳做法

与任何权限一样,您应该信任任何叠加层应用,至少应与您一样信任 信任此设备上的任何其他应用。换言之,您的应用不得 在其他应用中绘制叠加层 值得信赖。允许某个应用在其他应用上显示内容可能会带来危险, 可以窃取密码或读取邮件。