⚠️ 本次包含安全修复,影响 5.1.6-androidx 及更早的所有版本,强烈建议升级。
implementation 'com.github.Justson.AgentWeb:agentweb-core:5.1.7-androidx'
implementation 'com.github.Justson.AgentWeb:agentweb-filechooser:5.1.7-androidx' // (可选)安全修复
-
网页可拉起宿主应用未导出的页面(Intent Redirection) ——
DefaultWebClient会把网页中的 intent URL(intent://...;component=...;end,或任意 scheme 附带#Intent;...;end片段)原样解析,并以宿主 Activity 的身份启动。由于系统按宿主 uid 做导出检查,网页因此可以越过android:exported="false"的限制拉起宿主内部页面,并携带任意 extras。默认配置即受影响。现已修复:- 网页指定的组件若属于宿主自身,将被忽略,只能命中宿主声明过 intent-filter 的页面
- 宿主未导出的页面在任何
OpenOtherPageWays模式下都不会被打开 - 清除网页传入的 selector、嵌套 Intent 与 URI 权限授予类 flags
修复后,网页能打开的宿主页面不会超出外部应用能打开的范围。如需让 H5 打开未导出页面,请通过 JSBridge 由原生代码发起。
行为变更
intent://链接现在与其他 scheme 一样受OpenOtherPageWays控制:默认ASK模式下,跳转其他应用前会先弹窗询问;DISALLOW模式下不再打开。跳转宿主自身已导出的页面仍直接打开。
如需保持以前直接跳转的行为:.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.DERECT)
功能修复
- 询问弹窗被复用,导致连续点击不同链接时,确认后打开的始终是第一次点击的链接