OkHttp防止Fiddler抓包

博客介绍了OkHttp框架的使用,通过设置proxy(Proxy.NO_PROXY)属性可禁止使用代理,防止Fiddler工具抓包。还给出了判断是否使用代理的代码,根据安卓系统版本不同采用不同方式获取代理地址和端口进行判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OkHttp框架,可以设置proxy(Proxy.NO_PROXY)属性,禁止使用代理。亲测可以防止Fiddler工具的抓包。

var httpBuilder = OkHttpClient.Builder()
                .addInterceptor(defaultInterceptor())
                .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
                .writeTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
                .readTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
                .proxy(Proxy.NO_PROXY)
 

-----------------------------------------------------------------------------------------

也可通过以下方式来判断是否使用了代理

public static boolean isWifiProxy() {
    final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >=    Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    String proxyAddress;
    int proxyPort;
    if (IS_ICS_OR_LATER) {
        proxyAddress = System.getProperty("http.proxyHost");
        String portStr = System.getProperty("http.proxyPort");
        proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
    } else {
        proxyAddress = android.net.Proxy.getHost(context);
        proxyPort = android.net.Proxy.getPort(context);
    }
        return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
}
 

### 如何防止Fiddler抓包 为了阻止Fiddler这类工具进行数据捕获,应用程序开发者可以采取多种措施来增强安全性并保护敏感信息不被轻易拦截。下面是一些有效的策略: #### 使用无代理设置 对于基于HTTP客户端库的应用程序来说,可以在初始化阶段指定不使用任何网络代理服务器。例如,在OkHttp中可以通过`proxy()`方法配置为`.NO_PROXY`模式[^3]。 ```kotlin var httpBuilder = OkHttpClient.Builder() .addInterceptor(defaultInterceptor()) .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) .writeTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) .readTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS) .proxy(Proxy.NO_PROXY) // 不使用代理 ``` 这种做法能够有效避免应用流量自动导向至像Fiddler这样的本地监听端口上。 #### 加密传输层安全协议(TLS/SSL) 确保所有的API请求都经过加密处理是非常重要的一步。现代移动操作系统通常会验证证书链的有效性和合法性,如果发现异常则拒绝建立连接。因此即使攻击者成功设置了中间人位置也无法解码实际载荷内容[^2]。 #### 实施严格的证书固定(Certificate Pinning) 除了依赖于标准的信任机制外,还可以进一步实施更严格的身份认证方式——即所谓的“证书钉扎”。这意味着只有特定CA签发给预定义域名下的公钥才被认为是可信的;其他任何形式的篡改都会触发警告甚至终止会话。 --- ### 绕过Fiddler抓包技术 当遇到某些难以调试的情况时,可能需要找到绕开这些防护手段的办法来进行合法合规的技术分析工作。以下是几种常见的解决方案: #### 修改系统信任存储 有时目标APP可能会自带硬编码形式嵌入了自签名或其他特殊类型的根证书用于内部用途。此时可通过替换设备上的默认受信列表达到兼容目的。不过需要注意的是此操作存在一定风险并且违反了很多平台的安全政策,请谨慎行事[^1]。 #### 利用开发版特性或Root权限 部分官方发布的测试版本或许允许用户更容易地调整相关参数从而实现监控功能。另外拥有超级管理员身份后也意味着获得了更多控制权去修改底层环境变量等。 #### 更新浏览器扩展插件 针对Web页面加载过程中的HTTPS流量捕捉难题,保持最新状态下的第三方辅助软件往往能提供更好的支持和服务质量改进方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值