CodeQL 文档

敏感信息暴露给 UI 文本视图

ID: java/android/sensitive-text
Kind: path-problem
Security severity: 6.5
Severity: warning
Precision: medium
Tags:
   - security
   - external/cwe/cwe-200
Query suites:
   - java-security-extended.qls
   - java-security-and-quality.qls

单击以在 CodeQL 存储库中查看查询

密码等敏感信息不应显示在 UI 组件中,除非明确要求,以减轻窥肩攻击。

建议

对于包含敏感信息的文本字段,应将 inputType 设置为 textPassword 或类似值,以确保正确屏蔽。否则,必须显示的敏感数据应默认隐藏,并且仅基于明确的用户操作显示。

示例

在以下(错误)情况下,password 中的敏感信息会暴露给 TextView

TextView pwView = getViewById(R.id.pw_text);
pwView.setText("Your password is: " + password);

在以下(正确)情况下,用户必须按按钮才能显示敏感信息。

TextView pwView = findViewById(R.id.pw_text);
pwView.setVisibility(View.INVISIBLE);
pwView.setText("Your password is: " + password);

Button showButton = findViewById(R.id.show_pw_button);
showButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
      pwView.setVisibility(View.VISIBLE);
    }
});

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私