1. 程式人生 > >Android靜態安全檢查(十三):剪下板使用檢測

Android靜態安全檢查(十三):剪下板使用檢測

Android剪下板使用風險

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方法,則任務該應用存在往剪下板寫入資料的行為。

修復方法

  • 最好不要使用剪下板。
  • 如果實在需要用剪下板,確保敏感資訊不會被存入