引言:

随着Android 9 (Pie) 的发布,Google加强了平台的安全性要求,特别是对网络通信的安全性进行了重大更新。默认情况下,Android系统禁止应用使用未加密的明文HTTP进行网络通信。这篇博客将介绍如何在遵守新安全政策的同时,根据您的应用需求,适当配置网络安全设置,以允许明文HTTP通信或迁移到更安全的HTTPS通信。

1. Android网络安全政策的变化

从Android 9开始,为了提高数据传输的安全性,所有的HTTP请求默认必须使用HTTPS进行加密传输。这一改变意味着,如果您的应用尝试进行未加密的HTTP通信,将会受到系统的阻止,表现为各种网络请求错误。

2. 允许特定域的明文流量

如果您有临时的需要或正在逐步过渡到HTTPS,可以通过配置网络安全策略来允许对特定域的明文HTTP请求。

  • 修改网络安全配置文件:在应用的 res/xml 目录下创建 network_security_config.xml,并设置特定域名允许明文流量。
  • 代码示例
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">221.216.95.120</domain>
        </domain-config>
    </network-security-config>
    
  • 引用配置文件:在 AndroidManifest.xml 中引用此配置文件。
    <application
        android:networkSecurityConfig="@xml/network_security_config"
        ... >
        ...
    </application>
    

3. 全局允许明文流量

虽不推荐,但如果必须,可以全局允许明文流量。

  • 全局配置示例
    <network-security-config>
        <base-config cleartextTrafficPermitted="true" />
    </network-security-config>
    

4. 升级到HTTPS

解释为什么使用HTTPS是更安全的选择,并鼓励读者尽快迁移到HTTPS。

  • 获取SSL/TLS证书:介绍如何为服务器获取和配置SSL/TLS证书。
  • 配置服务器:简要说明如何在常见的服务器软件上配置HTTPS。

总结:

在这篇博客中,我们探讨了如何在Android应用中正确处理Google对网络安全的最新要求,无论是通过配置允许明文HTTP通信,还是迁移到HTTPS,都能确保您的应用既安全又能顺利运行。

结尾:

希望这篇文章能帮助您理解和应对Android平台上关于网络安全的最新要求。如果您有任何问题或想要分享您的经验,欢迎在评论区留言交流。

04-19 07:28