You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何识别应用连接的所有外部URL/域名,以便客户防火墙/代理白名单配置

识别Web/移动应用运行时外部端点的最佳方法

Web应用场景

  • 浏览器开发者工具:按下F12打开调试面板,切换到「Network」标签。勾选「Preserve log」防止页面刷新丢失请求记录,过滤「XHR/Fetch」或直接查看「All」请求,筛选出非本地(非localhost/内网IP)的域名和URL。还可以右键选择「Save all as HAR」导出完整请求日志,方便批量整理端点列表。
  • 代理拦截工具:使用mitmproxy、Charles这类代理工具,配置浏览器通过代理访问应用。所有HTTP/HTTPS请求都会被拦截捕获,能直观看到所有外部通信,还支持过滤、搜索和导出端点列表,适合处理动态加载的请求场景。
  • 静态代码辅助扫描:搜索前端代码中的硬编码URL、配置文件(如.envconfig.js)里的域名,但注意动态生成的端点(比如从后端接口返回的地址)只能通过运行时方法捕获,静态扫描仅作补充。

移动应用场景

  • 代理抓包:将手机代理设置为电脑上运行的代理工具(如Charles、mitmproxy),并在手机上信任代理证书(iOS需在「设置-通用-关于本机-证书信任设置」开启,Android可能需root或使用VPN模式代理),即可捕获App的所有HTTP/HTTPS请求,包括第三方SDK的通信。
  • 调试工具监控:Android用Android Studio的Logcat过滤网络相关日志,或直接使用「Network Profiler」;iOS用Xcode的「Network」调试面板,能实时查看App发起的所有网络请求及对应的端点。
  • Hook工具(应对证书校验):如果App做了SSL证书校验导致普通代理抓不到请求,可以用Frida这类工具Hook网络请求方法(如OkHttpnewCallNSURLSessiondataTask),打印出请求的完整URL。但此方法需要一定逆向知识,且需符合客户合规要求。

通用补充方案

  • 自动化测试全覆盖:运行覆盖所有功能的自动化测试用例(如Selenium测Web、Appium测移动应用),同时用代理工具捕获全程请求,确保覆盖所有用户操作触发的外部通信。
  • 后端日志分析:查看应用后端服务的出站请求日志(如Nginx、Tomcat日志,或应用自身的HTTP客户端日志),整理后端调用的外部API、存储服务等端点。
  • 隔离环境流量监控:在完全隔离的测试环境中运行应用,用Wireshark抓服务器或设备的网络包,监控所有出站流量,确保没有遗漏的隐藏端点。

注意事项

  • 覆盖全场景:别漏了登录、支付、推送通知、第三方SDK(统计、地图、分享等)的通信端点,这些往往是容易忽略的必要依赖。
  • 区分环境:测试环境的临时端点(如测试用的第三方服务)要和生产环境端点区分开,避免客户白名单配置错误。
  • 验证必要性:捕获到端点后逐个验证,确认是应用正常运行必需的,剔除不必要的请求(如广告、冗余统计)。

内容的提问来源于stack exchange,提问作者Moncef Moussaoui

火山引擎 最新活动