向通知公开敏感信息¶
ID: java/android/sensitive-notification
Kind: path-problem
Security severity: 6.5
Severity: error
Precision: medium
Tags:
- security
- external/cwe/cwe-200
Query suites:
- java-security-extended.qls
- java-security-and-quality.qls
密码或双因素身份验证 (2FA) 代码等敏感信息不应在系统通知中公开。不应将通知视为安全,因为其他不受信任的应用程序可能能够使用 NotificationListenerService
读取通知的内容。
建议¶
不要在通知中公开敏感数据。
示例¶
在以下示例中,password
作为通知的一部分发送。这可能允许其他应用程序读取此密码。
// BAD: `password` is exposed in a notification.
void confirmPassword(String password) {
NotificationManager manager = NotificationManager.from(this);
manager.send(
new Notification.Builder(this, CHANNEL_ID)
.setContentText("Your password is: " + password)
.build());
}
参考¶
OWASP 移动应用程序安全:Android 数据存储 - 应用程序通知
通用弱点枚举:CWE-200。