news 2026/4/3 8:08:25

iOS 如何绕过 ATS 发送请求,iOS调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iOS 如何绕过 ATS 发送请求,iOS调试

在调试 iOS 网络问题时,一开始并不会想到 ATS 绕过。
一般是来自一个可复现的现象,请求根本没有到达服务器,这时候我们才会去处理 ATS。

比如,当你在服务端后台看不到访问记录,而客户端手机app又没有明确报错。


先确认阻断发生在哪一层

ATS 的拦截发生在客户端网络栈内部。
在继续之前,需要先判断请求是否已经离开设备

一个简单的验证方式是切断网络:

  • 关闭 Wi-Fi / 蜂窝网络
  • 触发 App 的目标操作
  • 观察 UI 是否出现加载失败或超时提示

如果在网络关闭状态下表现一致,说明当前操作并未触发网络请求。
如果表现发生变化,说明请求确实存在,下一步才有意义。


使用代理工具确认 ATS 是否阻断在 HTTPS 建连前

当请求存在时,可以先用代理工具验证是否走系统网络。

代理验证步骤

  • 在电脑上启动代理工具(如 Charles / Fiddler)
  • iPhone 与电脑处于同一局域网
  • 在 Wi-Fi 设置中配置代理地址和端口
  • 在 iOS 上安装并信任代理证书
  • 用 Safari 访问一个 HTTPS 页面

如果 Safari 请求能被完整抓取,说明:

  • 系统代理生效
  • HTTPS 解密可用

此时再触发 App 请求,观察代理工具中的行为。


代理中没有 App 请求,意味着什么

当 Safari 流量可见,而 App 完全没有任何记录时,可以得出一个结论:

该 App 的网络请求没有经过系统代理。

在 ATS 场景中,这种情况常见于:

  • App 使用自定义网络栈
  • SDK 内部绕过系统网络配置
  • ATS 直接在 App 内部阻断了请求创建

继续在代理工具中调整设置,并不会改变这个结果。


用数据流确认请求是否被 ATS 阻断

在放弃代理之前,可以使用网络层工具确认是否存在底层通信。

观察以下现象即可判断:

  • 是否有 DNS 查询
  • 是否有 TCP 建连
  • 是否有 TLS ClientHello

如果这些都不存在,说明请求在创建阶段就被拦截,ATS 仍然是主要怀疑对象。


在自有 App 中处理 ATS 的实际路径

在你有 App 控制权的前提下,ATS 的处理方式并不复杂,但需要明确修改位置。

常见操作路径

  • 打开项目的Info.plist
  • 检查NSAppTransportSecurity配置
  • 确认是否存在以下项:
    • NSAllowsArbitraryLoads
    • NSExceptionDomains

修改完成后,重新构建并安装 App,再次触发网络请求。

这一步的验证标准很明确:
之前完全没有网络行为的请求,是否开始建立连接。


ATS 放开后,如何确认 HTTPS 数据是否完整

当请求开始发出后,下一步是确认是否能抓到 HTTPS 数据。

如果代理工具能看到 App 请求并成功解密,说明:

  • ATS 已不再阻断
  • HTTPS 校验允许中间人介入

如果代理仍然抓不到,但数据层出现连接,可以切换抓包路径。


设备级抓包用于绕过代理路径限制

当 ATS 已放开,但 App 仍不走系统代理时,可以使用设备抓包工具。

使用抓包大师(Sniff Master)的设备抓包

在 iOS 设备通过 USB 连接电脑的情况下:

  • 选择对应的 iOS 设备
  • 按提示完成驱动与描述文件安装
  • 进入 HTTPS 暴力抓包相关模式
  • 启动抓包并触发 App 网络请求

这一模式不依赖 Wi-Fi 代理,也不要求在手机上信任抓包证书。


通过 App 级筛选减少干扰

设备级抓包会包含大量系统请求。

在抓包大师中:

  • 使用「选择 App」功能
  • 仅保留目标应用的数据
  • 再次触发请求

这样可以快速定位业务接口,而不是在系统流量中手动筛选。


判断数据不完整的原因

在抓包结果中,如果出现以下现象:

  • URL 与 Header 可见
  • 请求体或响应体为空

说明 HTTPS 已被捕获,但 App 并未使用 iOS 开发证书签名。

这类情况需要:

  • 获取 IPA
  • 使用 iOS 开发证书重新签名
  • 如 IPA 加密,先完成脱壳
  • 安装重签后的 App
  • 重新进行抓包

完成后,数据即可完整显示。


拦截与修改的上限

需要明确的是:

  • 请求 / 响应拦截器仅存在于代理抓包模式
  • 设备级 HTTPS 抓包只负责采集与解密
  • 在需要修改请求或响应时,必须回到代理路径

将这两类能力区分清楚,可以避免在错误模式下寻找不存在的功能。

参考链接:https://www.sniffmaster.net/tutorial/zh/2/2.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 14:22:06

RMBG-2.0教育应用:在线学习平台的智能课件生成

RMBG-2.0教育应用:在线学习平台的智能课件生成 1. 在线教育的课件制作痛点,比你想象的更真实 你有没有见过这样的场景:一位物理老师花了整整两小时,只为把一张手写公式的照片抠图——背景是杂乱的笔记本纸纹,公式边缘…

作者头像 李华
网站建设 2026/3/29 8:20:01

数码管动态扫描的时空博弈:FPGA时钟显示的性能优化之道

数码管动态扫描的时空博弈:FPGA时钟显示的性能优化之道 在工业控制和消费电子领域,数码管作为经典的人机交互界面,其显示质量直接影响用户体验。传统静态驱动方式虽然实现简单,但在多位数码管场景下会面临引脚资源紧张、功耗激增等…

作者头像 李华
网站建设 2026/4/1 3:19:49

实测Qwen3-TTS:3秒克隆+97ms延迟的语音合成效果

实测Qwen3-TTS:3秒克隆97ms延迟的语音合成效果 你有没有试过——只用3秒录音,就能让AI完全复刻你的声音?不是那种“像一点”的模仿,而是连语气停顿、呼吸节奏、甚至说话时微微上扬的尾音都一模一样。更关键的是,生成第…

作者头像 李华
网站建设 2026/3/31 2:00:16

突破信息壁垒:内容解锁工具的探索与实践指南

突破信息壁垒:内容解锁工具的探索与实践指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字信息时代,获取有价值的内容往往面临诸多限制。当你深入研究…

作者头像 李华
网站建设 2026/4/2 18:10:37

Windows安卓子系统终极指南:电脑玩手机应用的跨平台解决方案

Windows安卓子系统终极指南:电脑玩手机应用的跨平台解决方案 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 想在Windows电脑上畅玩安卓应用却不…

作者头像 李华