iOS 防止 Charles 抓取数据

2018 年 8 月 24 日 CocoaChina

现在 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开发 如何判断网络请求是否开启了代理


🌴For The Good App.


参考:


相关推荐:


    作者:Maxdon
    链接:https://www.jianshu.com/p/1ab83d726d3f


    登录查看更多
    0

    相关内容

    iOS 是苹果公司为其移动产品开发的操作系统。它主要给 iPhone、iPod touch、iPad 以及 Apple TV 使用。原本这个系统名为 iPhone OS,直到2010年6月7日 WWDC 大会上宣布改名为 iOS。
    【实用书】Python爬虫Web抓取数据,第二版,306页pdf
    专知会员服务
    122+阅读 · 2020年5月10日
    【实用书】流数据处理,Streaming Data,219页pdf
    专知会员服务
    77+阅读 · 2020年4月24日
    【Google】监督对比学习,Supervised Contrastive Learning
    专知会员服务
    75+阅读 · 2020年4月24日
    【大规模数据系统,552页ppt】Large-scale Data Systems
    专知会员服务
    61+阅读 · 2019年12月21日
    【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
    专知会员服务
    96+阅读 · 2019年12月4日
    渗透某德棋牌游戏
    黑白之道
    12+阅读 · 2019年5月17日
    Kali Linux 渗透测试:密码攻击
    计算机与网络安全
    17+阅读 · 2019年5月13日
    PHP使用Redis实现订阅发布与批量发送短信
    安全优佳
    7+阅读 · 2019年5月5日
    从webview到flutter:详解iOS中的Web开发
    前端之巅
    5+阅读 · 2019年3月24日
    抖音爬虫
    专知
    3+阅读 · 2019年2月11日
    我是一个爬虫
    码农翻身
    12+阅读 · 2018年6月4日
    95行代码破解极验滑动验证码(附源码)
    FreeBuf
    11+阅读 · 2018年5月9日
    浅谈浏览器 http 的缓存机制
    前端大全
    6+阅读 · 2018年1月21日
    33款可用来抓数据的开源爬虫软件工具 (推荐收藏)
    数据科学浅谈
    7+阅读 · 2017年7月29日
    Joint Monocular 3D Vehicle Detection and Tracking
    Arxiv
    8+阅读 · 2018年12月2日
    Arxiv
    12+阅读 · 2018年9月5日
    Arxiv
    4+阅读 · 2018年1月15日
    Arxiv
    13+阅读 · 2018年1月11日
    VIP会员
    相关资讯
    渗透某德棋牌游戏
    黑白之道
    12+阅读 · 2019年5月17日
    Kali Linux 渗透测试:密码攻击
    计算机与网络安全
    17+阅读 · 2019年5月13日
    PHP使用Redis实现订阅发布与批量发送短信
    安全优佳
    7+阅读 · 2019年5月5日
    从webview到flutter:详解iOS中的Web开发
    前端之巅
    5+阅读 · 2019年3月24日
    抖音爬虫
    专知
    3+阅读 · 2019年2月11日
    我是一个爬虫
    码农翻身
    12+阅读 · 2018年6月4日
    95行代码破解极验滑动验证码(附源码)
    FreeBuf
    11+阅读 · 2018年5月9日
    浅谈浏览器 http 的缓存机制
    前端大全
    6+阅读 · 2018年1月21日
    33款可用来抓数据的开源爬虫软件工具 (推荐收藏)
    数据科学浅谈
    7+阅读 · 2017年7月29日
    Top
    微信扫码咨询专知VIP会员