WebView明文存儲密碼 -WebSettings.setSavePassword方法
一、API
1. 繼承關係
【1】java.lang.Object
【2】android.webkit.WebSettings
2. 主要方法
【1】setJavaScriptEnabled(boolean flag):是否支持js
【2】setPluginsEnabled(boolean flag):是否支持插件
【3】setSavePassword(boolean save):是否保存密碼
【4】其他方法
參考鏈接:http://www.apihome.cn/api/android/WebSettings.html
二、觸發條件
1. 調用getSettings方法,獲取WebSettings對象
【1】對應到smali語句中的特徵:;->getSettings()Landroid/webkit/WebSettings;
2. 調用WebSettings.setSavePassword方法,設置setSavePassword(true)或沒有顯示設置(默認爲true)
【1】對應到smali語句中的特徵:
Landroid/webkit/WebSettings;->setSavePassword(Z)V
判斷對寄存器的賦值:const v1 0x1
三、漏洞原理
【1】在使用WebView的過程中忽略了WebView setSavePassword,當用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db中。如果手機被root就可以獲取明文保存的密碼,造成用戶的個人敏感數據泄露
【2】參考鏈接:http://wolfeye.baidu.com/blog/webview-setsavepassword/
四、修復建議
【1】使用WebView.getSettings().setSavePassword(false)來禁止保存密碼
轉自:
http://blog.csdn.net/u013107656/article/details/51690821