uni-app android 离线打包时 webview file域访问问题:开启了file域访问,允许file域访问http域,且未对file域路径进行严格限制

uni-app android 离线打包时 webview file域访问问题:开启了file域访问,允许file域访问http域,且未对file域路径进行严格限制

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:
uniapp/App

PC开发环境操作系统:
Windows

HBuilderX类型:
正式

HBuilderX版本号:
3.1.4

手机系统:
Android

手机系统版本号:
Android 10

手机厂商:
小米

手机机型:
xiaomi9

页面类型:
vue

打包方式:
离线

示例代码:

<web-view :src="pageUrl" @message=""></web-view>

操作步骤:

使用了webview标签,打开html页面;在Android应用中,WebView开启了file域访问,允许file域访问http域,且未对file域的路径进行严格限制。攻击者通过URL Scheme的方式,可远程打开并加载恶意HTML文件,远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对APP用户账户的完全控制。

预期结果:

WebView不开启file域访问

实际结果:

WebView开启了file域访问

bug描述:

使用了webview标签,打开html页面;在Android应用中,WebView开启了file域访问,允许file域访问http域,且未对file域的路径进行严格限制。攻击者通过URL Scheme的方式,可远程打开并加载恶意HTML文件,远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对APP用户账户的完全控制。

若file域访问为非功能需求时,手动配置setAllowFileAccessFromFileURLs或setAllowUniversalAccessFromFileURLs两个API为false。(Android4.1版本之前这两个API默认是true,需要显式设置为false)

更多关于uni-app android 离线打包时 webview file域访问问题:开启了file域访问,允许file域访问http域,且未对file域路径进行严格限制的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app android 离线打包时 webview file域访问问题:开启了file域访问,允许file域访问http域,且未对file域路径进行严格限制的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个严重的安全漏洞。在uni-app Android离线打包中,WebView默认配置确实存在file域访问的安全风险。

问题核心在于Android WebView的setAllowFileAccessFromFileURLssetAllowUniversalAccessFromFileURLs默认启用,导致file协议页面可以访问http域和本地文件系统。

解决方案:

在离线打包的Android原生工程中,需要显式禁用这些设置:

WebSettings webSettings = webView.getSettings();
webSettings.setAllowFileAccessFromFileURLs(false);
webSettings.setAllowUniversalAccessFromFileURLs(false);
回到顶部