You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否安全替换Manifest的usesCleartextTraffic?库冲突的安全解决方式

解决hCaptcha与TheoremReach库的usesCleartextTraffic冲突问题

第一个疑问:将该值设为true是否会影响hCaptcha库原本的false设置?

会影响。Android Manifest的合并规则是主Manifest的配置会覆盖依赖库的配置,所以你全局设置usesCleartextTraffic="true"后,hCaptcha库原本的false会被完全覆盖。

不过不用过度担心hCaptcha的安全性:hCaptcha本身的业务逻辑是强制使用HTTPS请求的,全局允许明文流量只是放开了系统层面的限制,并不会让hCaptcha主动改用明文传输数据。只要hCaptcha的代码里没有硬编码明文请求,就不会产生安全风险。

第二个疑问:如何在不影响各库安全性的前提下正确解决此冲突?

推荐以下几种更安全的方案:

  • 优先尝试升级TheoremReach库
    检查com.theoremreach:theoremreach的最新版本,看官方是否已经修复了强制设置usesCleartextTraffic=true的问题。很多库的旧版本可能因历史原因保留了明文配置,新版本会改用HTTPS并移除这个设置。

  • 使用网络安全配置做精细化控制
    不要全局开启明文流量,而是通过网络安全配置,仅给TheoremReach需要的域名放行明文权限,其他域名保持强制HTTPS:

    1. 在主Manifest中添加网络安全配置引用,同时把全局usesCleartextTraffic设为false:
      <application
          ...
          android:networkSecurityConfig="@xml/network_security_config"
          android:usesCleartextTraffic="false">
      
    2. 在res/xml目录下创建network_security_config.xml文件,配置允许TheoremReach的特定域名使用明文:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <!-- 仅对TheoremReach的目标域名放行明文 -->
          <domain-config cleartextTrafficPermitted="true">
              <domain includeSubdomains="true">theoremreach.com</domain>
              <!-- 如果有其他子域名,按需添加 -->
          </domain-config>
          <!-- 全局默认禁止明文流量 -->
          <base-config cleartextTrafficPermitted="false">
              <trust-anchors>
                  <certificates src="system" />
              </trust-anchors>
          </base-config>
      </network-security-config>
      

    这种方式既能满足TheoremReach的需求,又能保证hCaptcha和其他库的流量始终走HTTPS,安全性不受影响。

  • 反馈给TheoremReach官方
    如果升级和网络配置都无法解决,可以联系TheoremReach的技术支持,反馈他们的库强制设置usesCleartextTraffic=true导致的冲突问题,要求他们提供更安全的版本(比如移除该配置,改用HTTPS)。

内容的提问来源于stack exchange,提问作者Ravers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:10:19