原文链接:https://www.jianshu.com/p/1ab83d726d3f

现在 APP 开发,数据的保密性越来越受重视,保密性高才不会让数据轻易被泄露,同时保护到用户和公司的利益。如何做到保密更加完善呢?怎么防止 Charles 获取数据呢?

大蓝的天

1、通过 HTTP/1.1 及以上版本的 CONNECT 请求方式。CONNECT 请求方式是什么呢?开发中我们多数用的是 POST 和 GET 来向服务端请求数据。

CONNECT 是在 HTTP/1.1 协议中,HTTP/1.0 定义了三种请求方法: GET, POST 和 HEAD方法,HTTP/1.1 新增了五种请求方法:OPTIONS、 PUT、DELETE、 TRACE 和 CONNECT 方法。它主要是把服务器作为跳板,先验证用户名和密码等信息,再让服务器代替用户去访问其它网页,之后把数据返回给用户。对HTTP/1.1 的 CONNECT 有兴趣,可以查阅 HTTP代理协议 HTTP/1.1 的 CONNECT 方法

简书的PC端部分是如此实现。打开简书网页,Charles抓取到的 <unknown> 中,可以见到它的 Method 为 CONNECT 请求方式。

CONNECT 请求方式

2、使用自签名证书的应用和双向验证的应用。在抓取一些第三方应用的包时候,为什么很多时候都抓取不到数据呢?

其一,客户端通过指定的方式只信任某一个证书;其二,一般做法只有客户端验证服务端公钥证书是不是合法,但是某些 app,比如支付宝,采用双向验证的方式,在通信过程中,服务器会验证 app 的公钥证书,这时候,就没办法使用 Charles(中间人攻击的方式)进行抓包。

3、对返回数据进行加密(RAS保密 + token验证  &  效率更高的AES) 。

4、判断客户端当前是否设置了代理。这也是本人通过 NSURLProtocol 拦截请求后,判断是否设置了代理,实现了防止 Charles 抓取 APP 的数据。

具体当进行网络请求的时候,如果设置了代理,不允许进行访问,对支付宝 APP 抓包时候,设置了代理后打开,很多界面都是无法访问了,某部分界面不知是否通过这方式实现?有了解的,感谢分享下。

iOS 防止抓包的更多相关文章

  1. IOS charles抓包HTTP

    charles通常用来截取本地的网络封包,但也可以用它来截取其他设备上的网络请求.本篇以IOS为例,讲解如何进行相应的操作. 1.charles上的设置 要截取iphone上的网络请求,我们要先将ch ...

  2. ios 免费抓包工具Stream

    ios 免费抓包工具Streamhttps://www.52pojie.cn/thread-1002406-1-1.html

  3. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(12)-Fiddler设置IOS手机抓包,你知多少???

    1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler 能捕获Android 和 Windows Phone 等 ...

  4. fiddler ios 手机抓包

    前言: 环境 :手机ios ip5s .fiddler .360wifi 保证手机和电脑是局域网(同一网络) 1:下载安装fiddler 准备环境 2:配置 fiddler 对应把图勾选上 弹出框 点 ...

  5. Mac 下 android/iOS https抓包

    一.Charles简介 Charles,是用Java开发的,所以跨平台,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,但目前是收费的. 二.下载 官 ...

  6. 使用Fiddler完成Android和IOS手机抓包Https

    实现原理 Fiddler是PC端有名的HTTP抓包工具,利用它我们可以轻松实现对主机上所有http/https网络请求的捕捉.查看和修改操作. 同时它也提供了代理模式,其它主机由它代理发送的网络请求也 ...

  7. IOS https抓包及10.3.3版本证书不生效问题解决

    Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/download/ 2. HTTP抓包 ...

  8. ios app抓包分析

    1 使用rvictl工具 这是mac下的一条命令.ios usb连mac,然后创建虚拟网络接口. 2 使用wireshark抓包 wireshark可以抓这个虚拟网络接口上的数据包.

  9. 如何利用Fiddler4进行Android APP / IOS APP抓包

    Fiddler抓包 1.Fiddler介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据. F ...

  10. Charles IOS https抓包

    步骤 1.下载charles: https://www.charlesproxy.com/download/ 只有一个30天试用版,每次打开只能30分钟,如果想时间长点,就找破解版或者买个licenc ...

随机推荐

  1. 【学习笔记】快速傅里叶变换(FFT)

    [学习笔记]快速傅里叶变换 学习之前先看懂这个 浅谈范德蒙德(Vandermonde)方阵的逆矩阵的求法以及快速傅里叶变换(FFT)中IDFT的原理--gzy hhh开个玩笑. 讲一下\(FFT\) ...

  2. quick-cocos2d-x 系列之——环境搭建(Mac版)

    quick-cocos2d-x简单介绍 何为quick-cocos2d-x? ?   简单一句话:quick-cocos2d-x是採用lua语言,通过tolua++工具对cocos2d-x进一步封装, ...

  3. JAVA Exception处理

    原文地址:http://blog.csdn.net/hguisu/article/details/6155636 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用 ...

  4. spring-boot-starter-parent

    在官方文档的第三部分的13块讲述了引用的管理,官方推荐的是使用Maven和Gradle. 我一直在用的是maven,而且使用maven有些优势–spring-boot-starter-parent,这 ...

  5. Shell 特殊位置参数的变量

    $0 -- 获取当前执行shell脚本的 文件名 $n -- 获取当前执行shell脚本的 第n个参数 $# -- 获取当前执行shell脚本的 带的参数个数 $? -- 获取执行上一个指令的执行状态 ...

  6. SQL Server 2008R2 代理服务-开启

    ,点击开始菜单-所有程序-SQLServer2008R2-配置工具-SQLServer配置管理器 2,选择SQLServer服务 3,找到SqlServer代理(MSSQLSERVER),双击或右键选 ...

  7. RStudio安装package时出现错误

    cannot open URL 'http://www.stats.ox.ac.uk/pub/RWin/src/contrib/PACKAGES' 提示是打不开链接,你切换为国内的源试试Rstudio ...

  8. 使用C语言解析URL

    1. [代码]容易写成自己输入URL,这里测试一个例子     #include <stdio.h>#include <stdlib.h>#include <string ...

  9. BZOJ 2442 [Usaco2011 Open]修剪草坪:单调队列优化dp

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2442 题意: 有n个数a[i]从左到右排成一排. 你可以任意选数,但是连续的数不能超过k个 ...

  10. Python: Neural Networks

    这是用Python实现的Neural Networks, 基于Python 2.7.9, numpy, matplotlib. 代码来源于斯坦福大学的课程: http://cs231n.github. ...