精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android Webview Java和Javascript安全交互

移動(dòng)開發(fā) Android
最近要對(duì)一個(gè)網(wǎng)頁(yè)的源代碼進(jìn)行檢測(cè),Android Webview中沒(méi)有直接獲取網(wǎng)頁(yè)源代碼的接口,傳統(tǒng)的addJavascriptInterface方法存在安全隱患,所以研究了一下Java和Javascript的安全交互。

最近要對(duì)一個(gè)網(wǎng)頁(yè)的源代碼進(jìn)行檢測(cè),Android Webview中沒(méi)有直接獲取網(wǎng)頁(yè)源代碼的接口,傳統(tǒng)的addJavascriptInterface方法存在安全隱患,所以研究了一下Java和Javascript的安全交互。

Android Webview漏洞

Android Webview有兩個(gè)非常知名的漏洞:

  • 最近爆出來(lái)的UXSS漏洞,可以越過(guò)同源策略,獲得任意網(wǎng)頁(yè)的Cookie等信息,Android 4.4以下都有此問(wèn)題,基本無(wú)解,只能重新編譯瀏覽器內(nèi)核解決,詳情可以參考最近移動(dòng)安全三兩事,感興趣的可以去看一下@RAyH4c劫持微博、QQ空間的視頻。
  • 成名已久的任意命令執(zhí)行漏洞,通過(guò)addJavascriptInterface方法,Js可以調(diào)用Java對(duì)象方法,通過(guò)反射機(jī)制,Js可以直接獲取Runtime,從而執(zhí)行任意命令。Android 4.2以上,可以通過(guò)聲明@JavascriptInterface保證安全性,4.2以下不能再調(diào)用addJavascriptInterface,需要另謀他法。

Java和Javascript安全交互

首先要說(shuō)明幾點(diǎn):

1.Android Webview中Java調(diào)用Js方法很容易,loadUrl("javascript:isOk()")就可以調(diào)用isOk這個(gè)Js方法,但不能直接獲取Js方法的返回結(jié)果。

  1. class JsObject { 
  2.        @JavascriptInterface 
  3.        public String toString() { return "injectedObject"; } 
  4.     } 
  5.     webView.addJavascriptInterface(new JsObject(), "injectedObject"); 
  6.     webView.loadData("""text/html"null); 
  7.     webView.loadUrl("javascript:alert(injectedObject.toString())"); 

2.傳統(tǒng)的方法中,Js獲取Java信息可以采用如下方式:

  1. import android.app.Activity; 
  2. import android.graphics.Bitmap; 
  3. import android.os.Bundle; 
  4. import android.util.Log; 
  5. import android.webkit.WebView; 
  6. import android.webkit.WebViewClient; 
  7.  
  8. public class HtmlSource extends Activity { 
  9.     private WebView webView; 
  10.  
  11.     @Override 
  12.     public void onCreate(Bundle savedInstanceState) { 
  13.         super.onCreate(savedInstanceState); 
  14.         setContentView(R.layout.main); 
  15.         webView = (WebView)findViewById(R.id.webview); 
  16.         webView.getSettings().setJavaScriptEnabled(true); 
  17.         webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); 
  18.         webView.setWebViewClient(new MyWebViewClient()); 
  19.         webView.loadUrl("http://www.cnblogs.com/hibraincol/"); 
  20.     } 
  21.  
  22.  
  23.    final class MyWebViewClient extends WebViewClient{   
  24.         public boolean shouldOverrideUrlLoading(WebView view, String url) {    
  25.             view.loadUrl(url);    
  26.             return true;    
  27.         }   
  28.         public void onPageStarted(WebView view, String url, Bitmap favicon) { 
  29.             Log.d("WebView","onPageStarted"); 
  30.             super.onPageStarted(view, url, favicon); 
  31.         }     
  32.         public void onPageFinished(WebView view, String url) { 
  33.             Log.d("WebView","onPageFinished "); 
  34.             view.loadUrl("javascript:window.local_obj.showSource('<head>'+" + 
  35.                 "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 
  36.             super.onPageFinished(view, url); 
  37.         } 
  38.     } 
  39.  
  40.     final class InJavaScriptLocalObj { 
  41.  
  42.         public void showSource(String html) { 
  43.             Log.d("HTML", html); 
  44.         } 
  45.     } 

3.當(dāng)網(wǎng)頁(yè)中有超鏈接跳轉(zhuǎn)時(shí),將會(huì)調(diào)用WebClient的shouldOverrideUrlLoading方法,若設(shè)置 WebViewClient 且該方法返回 true,則說(shuō)明由應(yīng)用的代碼處理該 url,WebView 不處理,就可以達(dá)到攔截跳轉(zhuǎn)的效果。

明白了上面幾點(diǎn),我們可以總結(jié)出一個(gè)比較安全的Java和Js交互方式

可以借鑒Android Intent的思路,Java和Js定義一個(gè)url格式如js://_,Java調(diào)用Js方法,在Js方法中通過(guò)window.location.href='js://_?key=value#key1=value1'模擬跳轉(zhuǎn),被Java的shouldOverrideUrlLoading捕獲,函數(shù)的返回值可以放在url的參數(shù)中。(Js調(diào)用Java方法原理相同)

這樣的交互方式是異步的,如果你想知道調(diào)用一個(gè)Js方法是否返回了值怎么辦?一般Java調(diào)用Js方法是在onPageFinished方法中,獲得Js返回值是在shouldOverrideUrlLoading方法中,兩個(gè)方法有個(gè)共同的參數(shù)webview,所以可以首先webview.setTag(false),如果捕獲到返回結(jié)果,則webview.setTag(true),postDelayed在很短時(shí)間比如300毫秒后,webview.getTag()檢查是否有變化即可。

責(zé)任編輯:閆佳明 來(lái)源: jiajixin
相關(guān)推薦

2014-07-29 11:16:07

2013-07-03 16:49:17

AndroidWebView

2013-09-13 13:15:28

AndroidWebViewJavaScript

2016-10-24 14:04:24

2009-06-30 15:05:52

JSP數(shù)據(jù)JavaScript數(shù)

2014-07-30 14:22:41

AndroidWebView內(nèi)存泄漏

2017-04-25 12:07:51

AndroidWebViewjs

2015-03-03 15:53:31

Android控件

2017-10-18 12:22:43

NativeHybirdJavaScript

2010-08-10 17:01:48

FlexJavaScript

2013-09-09 17:53:03

2017-07-14 09:29:45

AndroidWebview

2022-07-18 08:48:06

HtmxHTML

2017-05-17 08:51:39

WebView分析應(yīng)用

2014-04-03 10:16:44

JavaScriptCSS

2019-05-14 11:21:07

FlutterAndroidWebView

2010-07-30 12:56:02

Flex調(diào)用JavaS

2014-09-22 15:14:04

2020-12-18 09:40:30

應(yīng)用程序安全代碼

2009-11-23 12:43:32

SOA安全設(shè)備交互面向服務(wù)架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

激情五月婷婷综合网| 精品久久国产一区| 久久久亚洲综合| 国产剧情日韩欧美| 18岁成人毛片| 女同另类激情重口| 日本韩国一区二区三区| 亚洲视频在线观看日本a| 一级黄色片在线| 欧美视频一区| 亚洲老头同性xxxxx| wwww.国产| 在线激情免费视频| 成人黄色在线看| 国产成人精品日本亚洲| 四虎精品免费视频| 秋霞影视一区二区三区| 欧美日韩精品系列| 国产亚洲黄色片| 国产午夜在线观看| 国产一区二区精品久久91| 久久久视频在线| xxxx日本黄色| 99这里只有精品视频| 91国偷自产一区二区使用方法| 亚洲视频小说| 性xxxx视频| 精品一区二区三区免费| 色综合久久天天综线观看| 亚洲人成人无码网www国产| 电影一区中文字幕| 色成年激情久久综合| 久久国产精品网| 精品国产白色丝袜高跟鞋| 国产激情一区二区三区桃花岛亚洲| 国产91成人在在线播放| 中文字幕在线有码| 日韩欧美二区| 精品国产乱子伦一区| 日韩欧美国产片| 在线看片国产福利你懂的| 国产精品久久久久久久久动漫| 国产激情一区二区三区在线观看| 在线视频 91| 香蕉久久国产| 久久视频在线观看免费| 谁有免费的黄色网址| 黄色成人美女网站| 欧美电影精品一区二区| 中文字幕无码不卡免费视频| av在线私库| 一区二区高清视频在线观看| 亚洲欧洲精品一区二区| 国产在线色视频| 成熟亚洲日本毛茸茸凸凹| 国产日韩欧美91| av首页在线观看| 久久精品五月| 欧美国产视频日韩| 日本妇女毛茸茸| 久久久久久久久丰满| 最新91在线视频| 山东少妇露脸刺激对白在线| 男男gay无套免费视频欧美| 亚洲精品一区二三区不卡| 精品国产人妻一区二区三区| 国产一二区在线观看| 国产精品乱码人人做人人爱| 最新中文字幕久久| 免费影视亚洲| 欧美日韩国产专区| www.超碰com| 国产精品诱惑| 日韩欧美一区二区在线视频| 制服丝袜av在线| 免费看成人吃奶视频在线| 国产亚洲成精品久久| 欧美肥妇bbwbbw| 午夜视频精品| 欧美一级视频免费在线观看| 中文字幕欧美人妻精品一区蜜臀| 狠狠色丁香久久婷婷综合丁香| 91在线短视频| 亚洲av成人无码久久精品老人 | 日韩美女写真福利在线观看| 久久影视中文字幕| 国产一本一道久久香蕉| 国产一区二区精品免费| 国产一级片在线播放| 亚洲欧美日韩国产另类专区| 怡红院av亚洲一区二区三区h| 综合日韩av| 7777精品伊人久久久大香线蕉完整版 | 祥仔av免费一区二区三区四区| 日韩视频永久免费| 亚洲av无码一区二区三区人| 91精品亚洲| 茄子视频成人在线| 国产日韩一级片| 久久婷婷一区二区三区| 中文字幕在线中文字幕日亚韩一区| jizz一区二区三区| 欧美另类videos死尸| 波多野结衣影院| 亚洲精品一区二区在线看| 45www国产精品网站| 999免费视频| 国产视频在线观看一区二区三区| 黄色网在线视频| 国产精品久久久久久久久久齐齐| 精品国产91乱码一区二区三区| 永久免费av无码网站性色av| 亚洲国产美女| 91久久久久久| 岛国大片在线观看| 激情懂色av一区av二区av| 又色又爽又黄视频| 狠狠色狠狠色综合婷婷tag| 欧美极品美女视频网站在线观看免费| 中文字幕手机在线视频| av一区二区三区黑人| 中国女人做爰视频| 久久久久黄色| 亚洲人精品午夜在线观看| 国产午夜精品一区二区理论影院| 久久99精品国产麻豆不卡| 欧美一区二区福利| 麻豆视频在线观看免费网站黄| 91精品国产91久久久久久最新毛片 | 伊人国产精品| 在线视频日本亚洲性| 在线观看日本视频| av网站免费线看精品| 4444亚洲人成无码网在线观看| 国产精品毛片无码| 日韩中文视频免费在线观看| 日本成人一级片| 久久精品亚洲精品国产欧美kt∨| 青青草国产精品视频| 大型av综合网站| 欧美高清视频在线| 国产黄色一区二区| 亚洲欧美日韩国产综合| 三年中文在线观看免费大全中国| 日韩欧美午夜| 成人午夜高潮视频| 成人影院在线观看| 欧美日本在线一区| 黄色录像免费观看| 韩国成人精品a∨在线观看| 亚洲欧美成人一区| 日韩大陆av| 久久久精品网站| 国产人妖一区二区| 亚洲尤物视频在线| 视频免费在线观看| 亚洲欧美日韩视频二区| 蜜桃免费一区二区三区| 亚洲精品国产嫩草在线观看| 中文字幕不卡av| 国产精品久久久久久久久久久久久久久久| 国产精品久久一级| 久久久久亚洲av无码麻豆| 欧美日韩专区| 久久久久一区二区| 日韩不卡在线| 欧美成人免费播放| 日本高清视频免费观看| 欧美性感美女h网站在线观看免费| 欧美丰满少妇人妻精品| 视频在线观看一区| 一区二区三区在线观看www| 亚洲3区在线| 欧美在线中文字幕| 777电影在线观看| 日韩一区二区三区在线观看| 日韩精品久久久久久久酒店| 国产午夜精品一区二区三区嫩草 | 国产激情视频一区二区三区欧美 | 欧美电影免费提供在线观看| 日韩欧美亚洲一区二区三区| 久久久www成人免费无遮挡大片| 女性隐私黄www网站视频| 天天做综合网| 狠狠爱一区二区三区| av一区在线播放| 色综合色综合网色综合| 九色视频在线观看免费播放| 3atv在线一区二区三区| 黄色一级片免费看| 中文字幕五月欧美| 亚洲の无码国产の无码步美| 日本亚洲一区二区| 日韩欧美猛交xxxxx无码| 国产中文精品久高清在线不| 91丨九色丨国产| 精品国模一区二区三区| 久久99久国产精品黄毛片入口| 精品推荐蜜桃传媒| 日韩精品一区二区三区在线| japanese国产在线观看| 亚洲福利视频一区二区| 一本色道久久88| 99久久精品情趣| 亚欧精品在线视频| 日韩黄色在线观看| 精品国产一区三区| 亚洲视频在线免费| 日韩av电影免费播放| 久久动漫网址| 91免费观看| 欧美v亚洲v综合v国产v仙踪林| 51精品在线观看| 牛牛精品视频在线| 色婷婷av一区二区三区久久| 青青青手机在线视频观看| 在线综合视频播放| 中文字幕第31页| 一本色道综合亚洲| 一级免费在线观看| 亚洲午夜三级在线| 欧美日韩在线视频免费播放| 中文字幕一区二区三区不卡在线 | 亚洲最新在线观看| 极品色av影院| 亚洲国产高清aⅴ视频| 黄瓜视频污在线观看| eeuss影院一区二区三区| 国产精品日日摸夜夜爽| 国产米奇在线777精品观看| 久热精品在线观看视频| 日韩激情一二三区| 久久午夜夜伦鲁鲁一区二区| 久久精品国语| 欧美精品色婷婷五月综合| 国产偷自视频区视频一区二区| 免费一级特黄毛片| 亚洲激情另类| 日韩少妇内射免费播放| 亚洲美女91| koreanbj精品视频一区| 99热这里只有精品8| av在线播放亚洲| a91a精品视频在线观看| 男女激情无遮挡| 亚洲免费网址| av动漫免费看| 美女尤物久久精品| 日本熟妇人妻xxxxx| 日韩精品五月天| 第四色婷婷基地| 久久99国产精品麻豆| 污视频网址在线观看| 激情成人综合网| 自拍一级黄色片| 粉嫩aⅴ一区二区三区四区 | 红杏视频成人| 欧美日韩一区二区三| jiujiure精品视频播放| 一区二区不卡视频| 亚洲无中文字幕| 99在线免费视频观看| 亚洲专区在线| 91香蕉视频导航| 韩国理伦片一区二区三区在线播放| av在线免费观看不卡| 99久久99久久久精品齐齐| 久久精品国产亚洲av久| 国产精品视频第一区| 欧美三级日本三级| 欧美日韩一区免费| 中文字幕一区二区三区人妻四季| 欧美一区二区福利在线| 日本成人动漫在线观看| 中文字幕国产精品久久| caoporn97在线视频| 8x海外华人永久免费日韩内陆视频| 欧美黑人粗大| 91色精品视频在线| 欧美福利在线播放网址导航| 日韩av高清在线播放| 女人色偷偷aa久久天堂| 免费黄色日本网站| 久久国产日韩欧美精品| 白嫩情侣偷拍呻吟刺激| 日本一区二区成人在线| 久久久久久久中文字幕| 在线精品亚洲一区二区不卡| 精品人妻久久久久一区二区三区 | 韩国成人一区| 久久国产中文字幕| 久久国产精品视频在线观看| 青青草91视频| 午夜av免费看| 中文字幕日韩av资源站| 毛片视频网站在线观看| 91精品国产福利| 啊v视频在线| 久久久免费av| 99精品视频在线免费播放| 麻豆av一区二区| 欧美日韩网站| 中文字幕免费高清在线| 91色在线porny| 精品爆乳一区二区三区无码av| 在线精品视频一区二区三四| 日本黄色三级视频| 久久躁狠狠躁夜夜爽| 欧美电影网址| 久久99影院| 精品91在线| 亚洲男人天堂2021| 国产日本亚洲高清| 国产又爽又黄的视频| 日韩欧美亚洲国产精品字幕久久久 | 中文字幕精品www乱入免费视频| 成人免费高清观看| 99久久无色码| 在线国产一区二区| 日韩av在线中文| 国产清纯美女被跳蛋高潮一区二区久久w | 成人免费高清在线播放| 97视频在线播放| 88久久精品| 肉大捧一出免费观看网站在线播放| 麻豆精品在线播放| 久久久国产一级片| 91福利资源站| 黄网在线观看| 日本aⅴ大伊香蕉精品视频| 日韩影视高清在线观看| 成人性生活视频免费看| 风间由美性色一区二区三区| 久草网视频在线观看| 欧美一区二区三区啪啪| 黄网站app在线观看| 国产欧美最新羞羞视频在线观看| 精品日本12videosex| 男人搞女人网站| 欧美激情一区二区三区| 国产又粗又猛又黄视频| 国产一区二区三区在线观看视频| 日本少妇一区| 自拍另类欧美| 国产一区二区免费看| 男女性高潮免费网站| 欧美一级在线免费| 日本在线视频中文有码| av噜噜色噜噜久久| 99热这里只有成人精品国产| 性欧美丰满熟妇xxxx性久久久| 色综合久久综合中文综合网| 黄色av免费在线观看| 国产欧美日韩高清| 永久91嫩草亚洲精品人人| 日批视频免费看| 欧美日韩久久久久| 精品久久久久一区二区三区| 国产欧美一区二区白浆黑人| 亚洲成人av| 国产高潮视频在线观看| 精品久久久久久中文字幕| 国产乱视频在线观看| 91精品久久久久| 欧美午夜不卡影院在线观看完整版免费| 国产老头和老头xxxx×| 亚洲国产精品综合小说图片区| 天天躁日日躁狠狠躁喷水| 青草青草久热精品视频在线网站 | 成人黄色免费网| 久久久久99精品久久久久| 亚洲精品国产九九九| 欧美日韩二三区| 国产精品乱码妇女bbbb| 懂色av成人一区二区三区| 欧美在线视频一区二区| 图片区亚洲欧美小说区| 国产性生活毛片| 欧美日韩国产色站一区二区三区| 婷婷av在线| 日韩av在线电影观看| 国产麻豆视频一区| 狠狠躁夜夜躁人人爽天天高潮| 在线精品国产欧美| 欧一区二区三区| 国产一级片黄色| 亚洲综合在线视频| 国产精品秘入口| 99在线视频首页| 首页国产欧美日韩丝袜| 欧美日韩成人免费观看| 亚洲一区999| 97品白浆高清久久久久久| 成人一区二区三| 一区二区三区在线免费| www.黄在线观看| 激情小说综合网| 国产一区二区在线看| 丰满少妇xoxoxo视频| 欧美精品videossex88|