Android网络安全配置network_security_config

这篇具有很好参考价值的文章主要介绍了Android网络安全配置network_security_config。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android开发中如果采用的okhttp作为网络请求框架,则可以使用Chucker实现手机网络请求日志打印:

https://github.com/ChuckerTeam/chucker

但是上面的方式有局限性,所以测试经常会用到网络抓包来查看网络请求错误。
在Android6.0 及以下系统可以抓包,而 Android7.0 及以上系统不能再抓包了,因为Android7.0及以上系统版本新增了证书验证,所以 app 内不再像原来一样默认信任用户的证书了。
为了让测试能在抓包,一般都会在AndroidManifest.xml文件中配置network-security-config来实现。

允许抓包

为了让测试可抓包,配置如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates
                overridePins="true"
                src="system" />
            <certificates
                overridePins="true"
                src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

然后在AndroidManifest.xml文件的application节点配置:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.demo"
    android:versionCode="1"
    android:versionName="1.0" >
	
	...
	
    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true" >
        ...
    </application>
</manifest>

为了实现抓包,测试,开发阶段可以这么配置,但是发布阶段需要禁止抓包就不能这么配置。

禁止抓包
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">example.com</domain>
    </domain-config>
</network-security-config>

这样配置不一样了,需要动态进行设置。

Google官方文档配置如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true"/>
    <debug-overrides>
        <trust-anchors>
            <certificates
                overridePins="true"
                src="system" />
            <certificates
                overridePins="true"
                src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

使用 debug-overrides 指定仅在 android:debuggable 为 true 时才可信的仅调试CA。
如果需要在其他条件下进行动态配置,就不能这么设置了。

第一种方式通过manifestPlaceholders,在app模块的build.gradle中配置如下代码:

android {
	
	...
	
    buildTypes {
        debug {
        	...
        	manifestPlaceholders = [
                    network_security_config : "@xml/network_security_config_debug"
            ]
        }
        
        release {
        	...
      		manifestPlaceholders = [
                    network_security_config : "@xml/network_security_config_release"
            ]
        }
    }
 	
   ...
}

然后在AndroidManifest.xml文件中配置如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.demo"
    android:versionCode="1"
    android:versionName="1.0" >
	
	...
	
    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:networkSecurityConfig="${network_security_config}"
        android:supportsRtl="true" >
        ...
    </application>
</manifest>

还可以通过配置resValue来动态配置:

android {
	
	...
	
    buildTypes {
        debug {
        	...
        	resValue "xml", "network_security_config", "@xml/network_security_config_debug"
        }
        
        release {
      		...
      		resValue "xml", "network_security_config", "@xml/network_security_config_release"
        }
    }
 	
   ...
}

然后在AndroidManifest.xml文件中配置如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.demo"
    android:versionCode="1"
    android:versionName="1.0" >
	
	...
	
    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true" >
        ...
    </application>
</manifest>

这样就能实现动态配置了,非常方便。

感谢大家的支持,如有错误请指正,如需转载请标明原文出处!文章来源地址https://www.toymoban.com/news/detail-658652.html

到了这里,关于Android网络安全配置network_security_config的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络安全】 安全的系统配置

    系统配置是网络安全的重要组成部分。一个不安全的系统配置可能会使网络暴露在攻击者面前,而一个安全的系统配置可以有效地防止攻击者的入侵。在本文中,我们将详细介绍如何配置一个安全的系统,包括操作系统配置,网络服务配置,应用程序配置,以及如何处理系统

    2024年02月04日
    浏览(37)
  • 网络安全——基线管理与安全配置

    一、基线管理概述 1、什么是安全基线 简单来说,就是安全的最低标准线,满足安全需求的最低要求  2、基线的相关名词  3、基线核查的对象 必须把所有资产统计出来,如果漏了的话,可能会成为一个薄弱点,被攻击 4、基线管理 基线配置不仅仅是一项工作任务,更是一项

    2024年02月11日
    浏览(45)
  • 【网络安全】2.4 安全的系统配置

    系统配置是网络安全的重要组成部分。一个不安全的系统配置可能会使网络暴露在攻击者面前,而一个安全的系统配置可以有效地防止攻击者的入侵。在本文中,我们将详细介绍如何配置一个安全的系统,包括操作系统配置,网络服务配置,应用程序配置,以及如何处理系统

    2024年02月08日
    浏览(30)
  • 高级网络安全管理员 - 网络设备和安全配置:三层交换机和ACL配置

    Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况

    2024年01月16日
    浏览(42)
  • 网络安全软硬件配置

    原则 1.成熟性和可靠性原则 2.易用性和可维护性原则 3.可扩展性原则 范围 系统网络安全软硬件配置范围应与系统建设范围保持一致。 主要包括安全设备名称,主要功能,能力需求等。 硬件设备 防火墙 :访问控制、安全域隔离,对协议、地址和服务端口进行访问控制。 入侵

    2023年04月09日
    浏览(25)
  • 网络安全B模块(笔记详解)- Apache安全配置

    1.打开服务器场景(A-Server),通过命令行清除防火墙规则。在服务器场景上查看apache版本,将查看到的服务版本字符串完整提交; 2.检测服务器场景中此版本apache是否存在显示banner信息漏洞,如果验证存在,修改配置文件将此漏洞进行加固,并重启Apache服务,将此加固项内容

    2024年01月22日
    浏览(37)
  • 探索ProtonVPN Android App:安全、自由与隐私的网络新选择

    项目地址:https://gitcode.com/ProtonVPN/android-app ProtonVPN Android App 是一个开源的虚拟私人网络(VPNs)应用,致力于提供强大的加密、极致的安全性和无日志政策,以保护你的在线活动和数据。这款应用不仅适用于普通用户,也适合那些重视隐私和安全的专业人士。 ProtonVPN Android Ap

    2024年04月13日
    浏览(26)
  • 网络安全设备配置练习题1

    1.  ( 单选题, 5分) 如图所示,客户端A和服务器B之间建立TCP连接,图中两处“?”报文序号应该是下列哪项? A. a+1:a B. a:a+1 C. b+1:b D. a+1:a+1 正确答案:  D:a+1:a+1; 2.  ( 单选题, 5分) 如图所示为配置 NAT Server 后生成的两条 Server Map 表项,关于该图所呈现的信息,以下哪项描述是错误的?[单选

    2024年02月11日
    浏览(36)
  • 华为网络设备安全基线配置指南

    1.1.1 ELK-Huawei-01-01-01 编号: ELK-Huawei- 01-01-01 名称: 无效帐户清理 实施目的: 删除与设备运行、维护等工作无关的账号 问题影响: 账号混淆,权限不明确,存在用户越权使用的可能。 系统当前状态: 查看备份的系统配置文件中帐号信息。 实施方案: 参考配置操作 aaa und

    2024年02月01日
    浏览(37)
  • 网络安全--wazuh环境配置及漏洞复现

    目录 一、wazuh配置  二、wazuh案例复现 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 查看自身ip wazuh重启: 当我们使用本地的cmd通过ssh一直连接wazuh的时候便会出现十级报错,此次在后台可以明显的看到有爆破的提示扫描,通过分析其具体的数据包以及对应的规则理解到wu

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包