WebView的總結

WebViewWebView的做用WebView經常使用方法WebView資源加載WebView漏洞html

WebView

各類技術都有各自的優缺點,因此結合各自的有點去作Hybrid混合應用會好一點。WevView是一個基於webkit殷勤、展示web頁面的空間。Android在4.4開始直接使用了Chrome。web

WebView的做用

  • 顯示和渲染web網頁
  • 直接使用html文件(網絡和本地assets)做佈局
  • 和JavaScript交互調用

WebView經常使用方法

加載一個頁面緩存

image-20200126021424064
image-20200126021424064

WebView的狀態網絡

image-20200126022714189
image-20200126022714189

WebView網頁的上一個和下一個切換app

image-20200126025805246
image-20200126025805246

WebView清除緩存數據函數

image-20200126030431816
image-20200126030431816

WebSettings經常使用方法說明佈局

image-20200126031634019
image-20200126031634019

WebView緩存設置url

WebView在加載html頁面時,會在/data/data/packagepath目錄下生成database與cahce兩個文件夾,請求的URL記錄保存在WebViewCache.db,而URL的內容保存在WebViewCache文件夾下spa

image-20200126041206748
image-20200126041206748

設置WebViewClient3d

image-20200126041531014
image-20200126041531014

設置WebViewChromeClient

image-20200126044054554
image-20200126044054554

Native和JavaScript相互調用

image-20200126044304758
image-20200126044304758

緩存機制

image-20200126043942893
image-20200126043942893

WebView資源加載

WebView資源預加載

能夠在Android 的BaseApplication裏初始化一個WebView對象(用於加載經常使用的H5頁面資源),當需使用這些頁面時再從BaseApplication裏取過來直接使用

image-20200126044441639
image-20200126044441639

WebView漏洞

WebView的漏洞

WebView的主要漏洞有三類:任意代碼執行漏洞、密碼明文存儲漏洞、域控制不嚴格漏洞

  • 任意代碼漏洞

  • addJavascriptInterface接口 4.2開始不用考慮這個問題 4.2開始規定了對被調用的函數要以@JavascriptInterface進行註解避免漏洞攻擊

  • 內置導出的searchBoxJavaBridge_對象

  • 內置導出的accessibility和accessibilityTraversalObject對象

  • WebView默認開啓密碼保存功能 當用戶輸入密碼會彈出提示框詢問用戶是否保存密碼,密碼明文保存在/data/data/pcakgename/database/webview.db中,有盜取風險

  • 解決方案 調用WebSettings#setSavePassword(false)關閉密碼保存

  • 域控制不嚴格漏洞

    A 應用能夠經過 B 應用導出的 Activity 讓 B 應用加載一個惡意的 file 協議的 url,從而能夠獲取 B 應用的內部私有文件,從而帶來數據泄露威脅

    image-20200126045934837
    image-20200126045934837
相關文章
相關標籤/搜索