作为一名现代前端,除了要掌握html,css,js 以及一系列乱七八糟框架之外,还得懂得如何抓包改包。
当然,常规的网站或者自主开发的我们往往使用 chrome或者 firefox等浏览器自带的 开发者工具就能解决。但是往往会有一些特殊情况,比如 非SPA型网站,当接口请求出错等情况发生后 自动跳回登陆页,这就很蛋疼了,我们就无法得知出错原因等,当然还有很多别的奇奇怪怪的情况我们的 浏览器开发者工具无法满足我们(比如:抓取只能在微信里打开的网页)。这时就需要额外的抓包工具了:
- win用户:fiddler
- mac用户:Charles
关于 fiddler的相关用法 百度有很多,我们就不多说了。
今天我们聊聊 iphone Charles 抓包。
常规的手机通过Charles抓包方法 百度一搜一大把, 无非就是 手机修改代理为局域网内 电脑IP+charles端口(默认8888);
然后 在Charles弹出窗口选择 “allow” 就可以了,
手机随便打开一个网页 就能看到 Charles左侧窗口出现了网页域名
这样就能满足大部分网站的抓包了。
然而!有些网站使用的是 https,用了 ssl加密,这就很麻烦了我们抓不到,按照常规方法去抓,在Charles左侧窗口的 域名前面是把小锁的图标。
那怎么办呢?
- 我们点击Help ---- ssl Proxying ---- Install Charles Root Certificate on a Mobile Device or Remote Browser
- 复制弹窗框中的 chls.pro/ssl 地址在手机设备中打开这个地址,会自动在手机上安装 信任证书
- 我们选择 Proxy ---- Proxy Setting
- 勾选 Proxies 选项卡下的 Enable transparent HTTP proxying 然后 OK
- 再选择 Proxy ---- SSL Proxying Setting
- 选择 SSL Proxying 选项卡,勾选 Enable SSL Proxying,点击 Add 填入网址(网址支持通配符写法,一般我们直接写 * 就行了)和端口号(一般ssl的端口号都是 443)然后 OK
你以为这样就完了么?还差最后最最关键的一步
按照以前确实这样就结束了,但是 随着iphone系统的不断更新,自从iphone上了ver 10.3 之后(我不确定 是不是从ver 10.3开始的,也可能更早,不过ver 10 之前的肯定就结束了)其实我们虽然安装了 信任证书,但是默认安装完的信任证书其实是被关闭的,所以这个时候 你通过Charles去抓 手机打开的 https 网站依然是无法抓取的
我们在iphone上依次进入 设置 ---- 通用 ---- 关于本机 ---- 证书信任设置 在里面能看到你所有自己安装的证书,我们找到 Charles Proxy CA (xxxxx…… 点击右侧滑块 把它开启
OK 设置完毕!
我们再回头试试 用手机打开一个 https网站
见证奇迹的时刻到了!
我们看到 在Charles 左侧的 地址栏里面,https网站前面的小锁没有了,我们点击其中一条内容,所有的信息一览无遗!我们顺利抓取了 所有内容!