在Flutter中设置android:usesCleartextTraffic="true"是否安全?
关于model_viewer_plus: ^1.8.0设置usesCleartextTraffic=true的安全风险解析
核心逻辑说明
android:usesCleartextTraffic="true" 是Android系统的配置项,作用是允许应用发起明文HTTP请求——Android 9及以上版本默认禁止明文流量,插件要求开启这个配置,大概率是因为其内部部分资源加载、接口请求依赖了HTTP而非HTTPS链接。
明确存在的安全风险
- 明文HTTP传输的数据没有加密,极易被中间人攻击(MITM),请求内容(比如3D模型文件、配置参数)可能被窃取、篡改。
- 如果插件加载的第三方HTTP资源被恶意篡改,可能导致应用运行异常,甚至引入恶意代码威胁设备安全。
降低风险的可行方案
- 优先排查插件替代方案:检查插件官方文档,看是否有新版本已修复该问题,或者提供了强制使用HTTPS资源的配置项,避免全局开启明文流量。
- 精细控制明文域名范围:不要全局开启
usesCleartextTraffic=true,而是通过networkSecurityConfig仅允许插件依赖的特定HTTP域名:- 在
res/xml目录下创建network_security_config.xml文件:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <!-- 替换为插件实际依赖的HTTP域名 --> <domain includeSubdomains="true">example.com</domain> </domain-config> </network-security-config>- 在
AndroidManifest.xml的<application>标签中引用该配置:
<application ... android:networkSecurityConfig="@xml/network_security_config"> - 在
- 修改插件资源链接:如果插件是开源的,可以自行将源码中的HTTP资源链接替换为HTTPS版本,然后本地依赖修改后的插件。
内容的提问来源于stack exchange,提问作者Mithun c
相关产品推荐
相关产品推荐

