外观
如何通过 addJavascriptInterface 实现 JS 调用 Android 方法?存在哪些安全漏洞?
标准回答
定义对象及其 @JavascriptInterface 标注的 public 方法,调用 webView.addJavascriptInterface(object, "AndroidBridge") 注册后,JS 可用 AndroidBridge.method(...) 调用。调用运行在 WebView 的桥接线程,不应直接操作 UI。
**漏洞与限制:**旧版本桥接曾存在反射攻击风险;现代注解限制也不能让不可信网页变安全。桥接对象会暴露给页面中的 frame,不能可靠地仅凭调用识别其来源;只对可信内容暴露最少方法,跳转来源要限制,销毁前移除桥接。
通俗例子
可信页面可调用有限的分享方法;如果任意外部网页也能调用带文件或账号权限的接口,就可能越权。来源和暴露的方法都要限制。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
11.2.1