Android剪切板是可以暂存数据,剪切板在后台起作用,存放在内存中。如果把隐私数据,特别是密码,存放在剪切板中是不安全的,因为任何的应用程序都可以访问剪切板中的数据。
如果一个恶意应用,注册了系统剪切板的监听器事件,当剪切板数据发生变化的时候,就能获取到剪切板的数据,通过下面的代码就可以注册监听器。
final ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener()
{
@Override
public void onPrimaryClipChanged()
{
ClipData.Item itemAt = clipboardManager.getPrimaryClip().getItemAt(0);
Log.e("监听到剪切板中的内容:",itemAt.getText().toString());
}
});
通过下面代码可以往剪切板写入数据
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setPrimaryClip(ClipData.newPlainText("111111","22222"));
检测方法
如果检测到程序中使用了ClipboardManager 类的setText或者setPrimaryClip方法,则任务该应用存在往剪切板写入数据的行为。
修复方法
最好不要使用剪切板。
如果实在需要用剪切板,确保敏感信息不会被存入
原文链接:https://blog.csdn.net/u010889616/article/details/80991101