美文网首页webview与h5交互大全
WebView注入Java对象注意事项

WebView注入Java对象注意事项

作者: xiaobao058 | 来源:发表于2016-09-08 16:27 被阅读20次

在android4.2以前,注入步骤如下:

webview.getSetting().setJavaScriptEnable(true);
class JsObject {
public String toString() { return "injectedObject"; }
}
webView.addJavascriptInterface(new JsObject(), "injectedObject");

Android4.2及以后,注入步骤如下:

webview.getSetting().setJavaScriptEnable(true);
class JsObject {
@JavascriptInterface
public String toString() { return "injectedObject"; }
}
webView.addJavascriptInterface(new JsObject(), "injectedObject");

发现区别没?4.2之前向webview注入的对象所暴露的接口toString没有注释语句@JavascriptInterface,而4.2及以后的则多了注释语句@JavascriptInterface
经过查官方文档所知,因为这个接口允许JavaScript 控制宿主应用程序,这是个很强大的特性,但同时,在4.2的版本前存在重大安全隐患,因为JavaScript 可以使用反射访问注入webview的Java对象的public fields,在一个包含不信任内容的WebView中使用这个方法,会允许攻击者去篡改宿主应用程序,使用宿主应用程序的权限执行java代码。因此4.2以后,任何为JS暴露的接口,都需要加
@JavascriptInterface
注释,这样,这个Java对象的fields 将不允许被JS访问。

相关文章

  • WebView注入Java对象注意事项

    在android4.2以前,注入步骤如下: webview.getSetting().setJavaScriptE...

  • 011.影响WebView安全的相关API

    在混合式开发中,程序不仅要考虑性能问题,还要考虑安全问题。众所周知往WebView中注入Java对象,容易引起很大...

  • 面试问题

    1.https 对称加密2.图片缓存失效3.webview 安全漏洞 Android WebView的Js对象注入...

  • Spring-02

    注入自定义对象 上一篇文章说到了注入java内置对象的方法(Setter) 这次来说一说关于注入自定义类型对象的...

  • webView

    //设置背景透明[_webview setOpaque:NO]; 注入JS

  • Android WebView注入js方式总结

    Android WebView注入js方式总结 第一种 通过webview.loadUrl("javascript...

  • js提权

    java代码 代码中定义一个WebView类对象,然后通过addJavascriptInterface注册了一个名...

  • WebView总结

    webview基于WebKit引擎加载本地 和网络网页 loadUrl能调用js 函数,js也可以调用java对象...

  • springboot之属性注入

    单个属性注入 application.yml 注入单个属性 对象属性注入 application.yml 注入对象...

  • IOC注入

    一 属性注入介绍1 创建对象时候,向类里面属性设置值。2 Java设置属性的三种方法(1) 使用set方法注入 (...

网友评论

    本文标题:WebView注入Java对象注意事项

    本文链接:https://www.haomeiwen.com/subject/glgsettx.html