首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

存储安全(四)

本文主要介绍 TextView 的一些风险点。文中提到的相关资源和代码可以在https://github.com/AndroidAppSec/vuls/releases/tag/v1.2 获取。

四、TextView安全

TextView是很常见安卓控件,如果不恰当使用也会造成一些安全风险。

比如说以下界面,有几个安全隐患。

1、显示类型

首先,密码框是明文显示的,容易被窥屏或者截屏获取敏感信息。

可以通过在EditText标签中指定android:inputType为textPassword,来让密码进行掩码显示。

2、截屏攻击

不过这样并不能抵御截屏获取敏感信息。在 Android 5.0之前,要实现截屏需要有 root 权限。在 Android 5.0 之后,google 开放了录屏 API,使得无需 root 权限就能够截屏了。比如说以下图片中依然可以看到输入的密码明文。

为了解决截屏带来的风险,可以在承载的 Activity 中,加入以下代码来防止截屏获取敏感信息。

为了验证效果,我们做以下实验:

1)、在以下界面(未做防护),执行命令adb shell screencap -p /sdcard/1.png进行截屏。

2)、在以下界面(做了防护),执行命令adb shell screencap -p /sdcard/2.png进行截屏。

看一下截图文件,发现 1.png 大小正常而 2.png 大小为 0 字节,说明成功抵御了屏幕截图的攻击。

并且,我们在切换应用的界面,发现也不可见账号密码了。

3、剪切板安全

在文本框中经常会使用到复制粘贴的功能,这个时候数据是保存在剪切板中的。而剪切板是安卓系统提供的功能,所有的应用都可以访问,并且无需特殊权限申请。如果在剪切板中存储了敏感信息,就存在泄漏的风险。比如以下的应用通过监控剪切板内容,成功获取了身份证号码。

为了缓解风险,可以采用以下方法来禁用剪切板相关功能:

1)、禁用长按。在 EditText 中加入属性android:longClickable="false"。

2)、重写 EditText 的回调方法。

4、键盘缓存安全

在文本框输入的内容,有时候会被输入法缓存,以提升用户体验。但是在涉及到敏感信息输入框的时候,就可能会造成信息泄漏。为了缓解此问题,可以指定android:inputType为textNoSuggestions。

注:本文中涉及到的风险点通常需要根据应用的类型进行判断,比如说银行类 APP可能需要规避本文中的风险,而工具类 APP 则无需考虑大部分本文的风险点。

参考:

https://sushi2k.gitbooks.io/the-owasp-mobile-security-testing-guide/content/0x05d-Testing-Data-Storage.html

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180805G0S9OZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券