原文链接: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. 使用qt+ros调用摄像头遇到的问题

    当使用摄像头遇到如下问题:[usb_cam-1] process has died [pid 12288, exit code 127, cmd /opt/ros/indigo/lib/usb_cam ...

  2. ftl总结

    当前项目前端是用freemarker,是第一次使用这种页面,一般语法不介绍,这里只是记录工作中遇到的问题 ---------2016.6.25-------------- 1.关于ftl字符串的问题 ...

  3. Java for LeetCode 131 Palindrome Partitioning

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  4. C ~ 指针零散记录

    2016.10.11 一个记录 void MB_float_u16(float f,uint16_t *a,uint16_t *b) { uint8_t *fp; ① uint8_t *ap; ② a ...

  5. LeetCode:分发饼干【455】

    LeetCode:分发饼干[455] 题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的 ...

  6. cetons 怎么强制卸载 PHP

    查看php版本命令: #php -v 这个命令是删除不干净的 #yum remove php 因为使用这个命令以后再用 #php -v 还是会看到有版本信息的..... 必须强制删除 #rpm -qa ...

  7. oracle 数据库常用数据表操作

    在oracle中创建sequence CREATE SEQUENCE sequence名称 MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCRE ...

  8. 自定义编辑框VC,可加载更改字体,添加背景图片,显示输入提示信息

    搞了一天终于弄了个完整的编辑框控件出来了, 哎,,,搞界面开发还是有点复杂的. #pragma once #include "AdvEdit.h" // CBkgEditBox c ...

  9. deepin 安装微信与QQ

    安装QQ sudo apt-get install deepin.com.qq.im 安装微信 sudo apt-get install deepin.com.wechat 附录 其他安装包 http ...

  10. 简单的可兼容所有浏览器的操作html元素的javascript框架

    1.根据id名称取元素  $id(idName) 2.根据class定义取元素  $class(className)返回所有class被定义成className的元素数组,或者$Eclass(clas ...