MASTG-TEST-0006:确定文本输入字段是否禁用键盘缓存
概述¶
静态分析¶
在 Activity 的布局定义中,您可以定义具有 XML 属性的 TextViews
。 如果 XML 属性 android:inputType
的值为 textNoSuggestions
,则在选择输入字段时不会显示键盘缓存。 用户将必须手动输入所有内容。
<EditText
android:id="@+id/KeyBoardCache"
android:inputType="textNoSuggestions" />
所有接收敏感信息的输入字段的代码都应包含此 XML 属性,以禁用键盘建议。
或者,开发人员可以使用以下常量
XML android:inputType |
代码 InputType |
API 级别 |
---|---|---|
textPassword |
TYPE_TEXT_VARIATION_PASSWORD |
3 |
textVisiblePassword |
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD |
3 |
numberPassword |
TYPE_NUMBER_VARIATION_PASSWORD |
11 |
textWebPassword |
TYPE_TEXT_VARIATION_WEB_PASSWORD |
11 |
检查应用程序代码以验证是否没有输入类型被覆盖。 例如,通过执行 findViewById(R.id.KeyBoardCache).setInputType(InputType.TYPE_CLASS_TEXT)
,输入字段 KeyBoardCache
的输入类型被设置为 text
,重新启用键盘缓存。
最后,检查 Android Manifest 中的最低要求 SDK 版本(android:minSdkVersion
),因为它必须支持使用的常量(例如,textWebPassword
需要 Android SDK 版本 11)。 否则,编译后的应用程序将不会遵守使用的输入类型常量,从而允许键盘缓存。
动态分析¶
启动应用程序并单击接收敏感数据的输入字段。 如果建议字符串,则表示这些字段未禁用键盘缓存。