引言:
随着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平台上关于网络安全的最新要求。如果您有任何问题或想要分享您的经验,欢迎在评论区留言交流。
原文始发于微信公众号(菜鸟小新):Android网络安全配置:允许明文HTTP通信的正确姿势20240418
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论