You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用Retrofit接口Burp Suite抓包篡改攻击的防范方法咨询

Retrofit 网络请求防 Burp 拦截篡改的防护方案

1. 启用证书锁定(Certificate Pinning)

这是拦截 Burp 抓包最直接的手段,Burp 能抓HTTPS请求的前提是用户将Burp根证书导入设备信任列表,证书锁定会让客户端只信任你服务端的指定证书/公钥哈希,拒绝Burp签发的伪造证书,直接中断非法连接。

Retrofit 底层依赖 OkHttp,可直接配置 CertificatePinner 实现,示例代码如下:

// 替换为你的服务端域名和对应的公钥SHA256哈希
CertificatePinner pinner = new CertificatePinner.Builder()
    .add("your-service.com", "sha256/abcdefghijklmnopqrstuvwxyz1234567890=")
    .build();
OkHttpClient client = new OkHttpClient.Builder()
    .certificatePinner(pinner)
    .build();
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://your-service.com/")
    .client(client)
    .build();

注意上线前务必关闭调试阶段的「信任所有证书」「允许代理」等测试配置。

2. 全接口请求加签名校验

即使攻击者绕过证书锁定抓到请求,也无法篡改参数后通过服务端校验:

  • 客户端将所有请求参数按固定规则排序,拼接上仅客户端和服务端知晓的密钥盐,通过SHA256等哈希算法生成签名,将签名存入请求头传给服务端
  • 服务端接收请求后用完全相同的规则生成签名,和请求传入的签名对比,不一致直接拒绝请求
  • 签名生成逻辑建议放在JNI Native层实现,不要在Java/Kotlin层硬编码密钥,避免被反编译直接拿到密钥

3. 敏感请求 payload 对称加密

敏感业务的请求体不要明文传输,就算被拦截也无法读取、篡改内容:

  • 采用AES对称加密请求体,密钥可提前约定,也可每次请求用RSA加密动态生成的AES密钥传输,避免密钥泄露
  • 可自定义Retrofit的Converter.Factory统一处理所有请求/响应的加解密,无需每个接口单独适配

4. 增加客户端反调试、反Hook防护

攻击者可通过Root设备后用Frida、Xposed等工具Hook绕过证书锁定逻辑,需增加对应防护:

  • 增加Root检测、调试器检测、Frida/Xposed环境检测,检测到风险直接强制退出应用
  • 对核心网络逻辑代码做混淆、加固,提高反编译和Hook的成本

5. 服务端额外校验逻辑

  • 校验请求头的User-Agent、设备标识等是否符合约定,异常请求直接拦截
  • 高危操作(支付、账号信息修改等)额外增加二次校验,比如短信验证码、人脸验证等,避免被篡改请求后直接执行业务
  • 监控异常请求频率,短时间内大量异常请求直接拉黑对应IP/设备标识

以上措施本质是提高攻击门槛,不存在100%无法破解的防护方案,只要攻击成本高于攻击者可获得的收益即可达到防护目标。

内容的提问来源于stack exchange,提问作者Amit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:36:04