【发布时间】:2014-06-24 15:38:58
【问题描述】:
我有一个应用程序,它的作用类似于浏览器并在 android webview 中显示结果。其中,一些结果是从我自己的服务器呈现的,并使用 javascriptInterface 对象调用 Java 方法。
在 WebviewClient shouldOverrideUrlLoading() 方法中,我只为我的服务器的选择性 url 添加了 javascriptInterface 并删除了剩余 url 的 javascriptInterface 为代码如下:if(url.contains("mypage1.html")||url.contains("mypage2.html")){
webView.addJavascriptInterface(new JavaScriptInterface(),"XYZ");
}
else {
webView.removeJavascriptInterface("XYZ");
}
包含恶意 javascript 的虚拟 url myevilpage.html 也与 mypage1.html 和 mypage2.html 一起加载。我已验证 myevilpage.html javascript 无法调用 Java 方法。
这种方法是否可以确保除了我的特定 url 之外没有其他 url 可以使用 javascriptInterface 桥绑定?
我已经参考了以下链接:
http://www.rapid7.com/db/modules/exploit/android/browser/webview_addjavascriptinterface
Android App using Webview/javascript. what can be security concern?
Android JavascriptInterface Security?
【问题讨论】:
标签: java android android-webview javascript-injection