ProxyPin 请求屏蔽 拦截广告与追踪请求
与域名过滤的区别
域名过滤决定"要不要拦截这个域名的流量",请求屏蔽决定"拦截到了之后要不要真发出去"。
| 功能 | 作用 | 时机 |
|---|---|---|
| 域名过滤 | 白名单/黑名单域名 | TLS 握手前(连接层) |
| 请求屏蔽 | 拦截特定 URL | 请求发出前(应用层) |
域名过滤粗粒度(整域名),请求屏蔽细粒度(特定 URL 或 URL 模式)。两者互补。
屏蔽场景
屏蔽广告和追踪 SDK
App 内嵌的第三方 SDK 经常偷偷发追踪请求,影响性能还侵犯隐私。常见需要屏蔽的域名模式:
# Google 分析和追踪
**/*google-analytics.com/*
**/*googletagmanager.com/*
# Facebook 追踪
**/*facebook.com/tr*
# 国内 SDK
**/*umeng.com/*
**/*appsflyer.com/*
**/*adjust.com/*
# Crash 上报(调试时不想看)
**/*crashlytics*
**/*sentry*
屏蔽不希望发生的操作
某些操作在调试时不希望真正执行(比如支付、删除数据):
# 屏蔽所有支付相关请求
**/payment/**
**/order/**/confirm
测试离线功能
屏蔽某些 API,测试 App 在网络异常时的降级逻辑:
# 屏蔽商品列表接口
https://api.myapp.com/products/list
屏蔽规则配置
进入「我的」→「请求屏蔽」:
- 点击「+」添加规则
- 输入要屏蔽的 URL 模式(支持 glob 通配符
*和**) - 保存启用
* 匹配单路径段,** 匹配任意多层路径。
典型 glob 模式
# 屏蔽整个域名下的所有请求(推荐用域名过滤替代)
**/*ads.example.com/**
# 只屏蔽特定路径下的图片
https://cdn.example.com/images/ads/*
# 屏蔽所有 .gif 格式追踪像素
**/*.gif
屏蔽后的效果
请求被屏蔽后:
- App 侧收到连接失败或超时错误(取决于 ProxyPin 的实现)
- 请求列表中能看到被屏蔽的请求标记
- 可以配合请求重写给屏蔽的请求返回自定义响应(更温和的替代方式)
屏蔽 vs 重写 vs 映射选择
| 需求 | 用哪个 |
|---|---|
| 完全不让请求发出去 | 请求屏蔽 |
| 发出去但改内容 | 请求重写 |
| 不发请求、直接返回本地数据 | 请求映射 |