基于iOS的Charles抓包实践
在iPhone浏览器中访问 http://charlesproxy.com/getssl 可以下载证书并安装。此地址一般不会变化,可以在Charles 菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser中查看最新的官方证书下载地址。图示如下: 基于iOS的证书信任机制,在安装完成并信任证书后,需要到iPhone设置 -> 关于本机 -> 证书信任设置 中启用根证书。图示如下: 这样,就可以使用Charles中抓包iPhone发出的HTTPS请求并预览明文数据了。 抓包模拟器上的HTTPS请求需要点击Install Charles Root Certificate in iOS Simulators安装证书。 (3) 启动抓包SSL权限 在Charles菜单栏 -> Proxy -> SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。图示如下: 也可以在抓包界面,右键点击某条/组请求,在弹出的选项列表中点击Enable SSL Proxying启用权限。图示如下: 四、请求断点 在Charles的请求预览界面中,右键点击某条/组请求,在弹出的选项列表中有Breakpoints选项。图示如下: 点击Breakpoints后即为该请求设定了断点。默认情况下,在该请求的Request / Response过程都会受断点控制,即在Request数据发送到的服务端之前会被暂停,在Response数据发送到客户端之前也会被暂停。可以从Charles菜单栏 -> Proxy -> Breakpoint Settings中编辑断点的参数。比如,只需要对Response过程加断点,可以将Request的勾选状态取消。图示如下: 在断点状态下,可以预览和修改请求的中间数据,之后点解Execute按钮即可继续执行请求。 五、数据修改 Rewrite和Breakpoint Editing都可以起到修改请求数据的作用。 1. Rewrite 在Charles菜单栏 -> Tools -> Rewrite中可以开启Rewrite功能,点击Add按钮可以添加一条设置,并可以在右侧的Locations和Rules中分别添加要Rewrite的请求路径和Rewrite规则。图示如下: Rewrite适合应用于对请求的批量和长期修改,对请求数据影响较大(测试结束后经常忘记去掉规则)。所以,在一些轻量级的数据修改场景中,我经常结合Breakpoint功能修改数据。 2. Breakpoint Editing 结合断点功能,可以很好的实现临时修改请求的Request / Response数据的需求。为某条请求设置断点后,当该请求发生时,会自动跳到断点窗口。点开Edit Request / Response界面,可以看到中间信息,选择合适的数据格式(HTML、Json等)进行修改。修改完成后,点击Execute按钮即可在终端上看到修改后的的效果。图示如下: 六、请求重发 (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |