Android剪切板是可以暫存數(shù)據(jù)叛溢,剪切板在后臺(tái)起作用,存放在內(nèi)存中劲适。如果把隱私數(shù)據(jù)楷掉,特別是密碼,存放在剪切板中是不安全的霞势,因?yàn)槿魏蔚膽?yīng)用程序都可以訪問(wèn)剪切板中的數(shù)據(jù)靖诗。
如果一個(gè)惡意應(yīng)用,注冊(cè)了系統(tǒng)剪切板的監(jiān)聽(tīng)器事件支示,當(dāng)剪切板數(shù)據(jù)發(fā)生變化的時(shí)候,就能獲取到剪切板的數(shù)據(jù)鄙才,通過(guò)下面的代碼就可以注冊(cè)監(jiān)聽(tīng)器颂鸿。
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("監(jiān)聽(tīng)到剪切板中的內(nèi)容:",itemAt.getText().toString());
}
});
通過(guò)下面代碼可以往剪切板寫(xiě)入數(shù)據(jù)
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setPrimaryClip(ClipData.newPlainText("111111","22222"));
檢測(cè)方法
如果檢測(cè)到程序中使用了ClipboardManager 類(lèi)的setText或者setPrimaryClip方法,則任務(wù)該應(yīng)用存在往剪切板寫(xiě)入數(shù)據(jù)的行為攒庵。
修復(fù)方法
最好不要使用剪切板嘴纺。
如果實(shí)在需要用剪切板,確保敏感信息不會(huì)被存入
原文鏈接:https://blog.csdn.net/u010889616/article/details/80991101