安全测试工具:使用Charles代理进行请求转发

发表于:2021-3-08 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:CSDN

  Charles是一款代理工具,官网中的解释为“HTTP代理/HTTP监视器/反向代理”,在Mac OS中使用比较多,当然也支持Windows的用户,我们可以通过这个代理来查看客户端与服务器之间的交互信息,也可以通过它来修改这些请求或响应当中的信息,从而来验证一些产品功能逻辑。
  今天我们主要来了解一些Charles当中修改报文的方法。进入主题之前,有两点需要说明的,第一就是什么是报文。其实报文就是我们所说的消息(message),只是这些消息在网络当中传输需要按照固定的信息格式。第二点,就是修改什么。因为我们提到了多种修改的方法,在判断使用哪种方法之前,如果我们已经清楚修改什么,就有可能选择出更高效的方法。
  1.Breakpoint(打断点)
  比较适合用于单次的修改。通过打断点的方式,在请求(Request)到达服务端前和响应(Response)到达客户端前分别可以实现一次拦截,这样我们可以通过修改Request来“欺骗”服务端,修改Response来“欺骗”客户端。
  中间的信息我们都是可以进行修改的,比如把请求方式由GET改为POST,改完后点击Execute即可继续进行下一步。
  响应中的http状态码、报文数据等也可以在拦截之后进行修改。打断点是每次都要修改的,如果你想要“一劳永逸”,就需要采用下面的方法了。
  2.Rewrite
  比较适合用于修改报文中的url、固定字段、字符串等,打开Charles工具栏的Tools,找到Rewrite点击进入设置。
  1)修改url:比如说请求url发生了变化,需要将www.test.com修改为www.test2.com。
  2)修改返回的http状态码:比如某条请求在返回时,客户端根据请求的状态码做了判断,当请求成功(200)时,就实现逻辑一,请求不成功了就实现逻辑二,这时我们可以通过把请求的状态码修改为200,来验证第一条逻辑,也可以把状态码改成404,来验证第二条逻辑。
  我们一定要在设置的时候勾选上Regex,表示我们使用了正则,这样\d{3}就代表3个并列的整数,也就等同于http的状态码了。
  3)修改响应中的字符:比如有些测试环境当中不支持https的链接,有些图片链接是https开头时,会显示为灰图,那么我们可以把返回的报文中https修改为http。
  3.Map(重定向)
  1) Map Remote
  比较适合用于做单纯的域名转发,比如上文中通过Rewrite修改url,这种问题也可以用Map Remote来解决。
  2) Map Local
  如果你只需要对返回报文的Body进行修改,而且修改之后的内容固定为某一批数据就可以,那么这个功能就可以帮到你,因为我们可以把请求转发到本地文件。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号