引言:
随着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平台上关于网络安全的最新要求。如果您有任何问题或想要分享您的经验,欢迎在评论区留言交流。