Skip to content
阅读进度

如何通过 addJavascriptInterface 实现 JS 调用 Android 方法?存在哪些安全漏洞? ​

返回 Java 与并发 目录

标准回答 ​

定义对象及其 @JavascriptInterface 标注的 public 方法,调用 webView.addJavascriptInterface(object, "AndroidBridge") 注册后,JS 可用 AndroidBridge.method(...) 调用。调用运行在 WebView 的桥接线程,不应直接操作 UI。

**漏洞与限制:**旧版本桥接曾存在反射攻击风险;现代注解限制也不能让不可信网页变安全。桥接对象会暴露给页面中的 frame,不能可靠地仅凭调用识别其来源;只对可信内容暴露最少方法,跳转来源要限制,销毁前移除桥接。

通俗例子 ​

可信页面可调用有限的分享方法;如果任意外部网页也能调用带文件或账号权限的接口,就可能越权。来源和暴露的方法都要限制。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。