Charles Proxy-主管代理工具

作为软件开发人员,对不同数据集的代码进行单元测试非常重要。 我需要在运行时更改模型对象或更新服务器。 如果我做错了事,这两种方法都可能造成麻烦。 一旦从设备传递了请求,我们通常就没有太多的控制权,而每次在代码中使用不同的值对其进行更改都不是一件容易的事。 Charles Proxy,为我节省了时间,并帮助您处理许多请求和响应

术语“互联网”的兄弟姐妹

深入了解Charles代理有助于修改充当互联网兄弟姐妹的术语。 以下是关于此的小注释。 该注释将帮助您解决互联网上最常见的问题:“互联网如何工作?”

连接到互联网的所有内容都将具有IP地址 。 IP地址不是人类可读的格式,因此引入了域名 。 在DNS服务器中找到与该域名对应的IP地址,该服务器分为(1)递归解析器,(2)根名称服务器,(3)TLD(顶级域名)名称服务器和(4)权威名称服务器 记住顺序,因为这是完成搜索相应IP地址的方式 路由器中的NDL (网络转换设备)将专用IP地址转换为公用IP地址 。 互联网中的信息以数据包的形式传递 当数据包向目的地移动时,成千上万的路由器充当中间设备,并将自己的IP地址添加到数据包中。 一旦到达服务器并向后导航,路由器便会将其IP地址从数据包中解包。

什么是代理?

代理人,代表他人的权力。 代理服务器或软件充当端点设备和Internet之间的中介。

请求和响应通过代理传递,因此我们可以查看或记录设备的流量。 代理服务器还有助于缓存数据,阻止恶意流量。 这是阻止我们进入YouTube和Facebook的罪魁祸首。 由于它能够缓存数据,因此可以避免再次访问服务器。

安装

您可以从以下链接下载LINUXMac OSWindows的代理:

下载Charles * Charles Web调试代理的免费试用版
Charles Web调试代理–官方网站 www.charlesproxy.com

查尔斯

代理软件在我们的系统中通过简单的UI和命令行工具运行。

查尔斯代理包含两种视图结构和顺序。 结构有助于分隔不同的主机URL,顺序有助于我们根据时间,持续时间,大小等确定每个呼叫的顺序。

Charles代理的有用功能:

如果要观看Charles代理的每个功能如何工作,可以直接单击此链接。

了解Charles代理的功能有什么好处?

一旦您了解了Charles,使用诸如Fiddler之类的其他代理软件就不会很复杂。 它节省了我的时间并帮助提高了生产率,我希望它能为您做同样的事情。

观察HTTP流量

一旦您在同一网络中连接了Charles代理和设备并在设备中更改了代理地址,Charles将显示通过它的每个请求和响应。 您可以查看JSON,XML,TEXT,Image之类的响应。 如果响应包含SQL,则不能直接查看它,但是可以保存响应并使用第三方工具将其打开。 您可能会看到一些经过加密的流量,因为它们是https流量。 要开始记录HTTP流量,请选择Proxy->记录设置-> selcet Include选项卡->并添加*。*作为主机。 观看设置和HTTP流量演示视频。

解密SSL(HTTPS)流量

SSL是用于在服务器和浏览器之间创建加密链接的协议。 SSL帮助我们加密,隐藏发送的内容并识别发送的对象。 要启用SSL连接,服务器将发送其证书以及详细信息和公共密钥以对信息进行加密。 只能使用服务器中存储的私钥解密加密的详细信息。

主要的根证书存储是Apple,Microsoft,Mozilla和Android。 当您访问网站时,该网站会显示一个由另一个证书签名的证书,该证书由另一个证书签名,直到您到达所使用商店中的一个证书为止。 默认情况下,我们的浏览器或系统将具有一些受信任的服务器证书。要加密SSL链接,我们需要下载charles代理证书并信任它。

请观看我的第一个视频以设置Charles porxy,并按照该视频在设备中安装charles根证书以解密SS1请求和响应。

注意:键入*。*,这将为所有api调用启用SSL代理。

无法解密所有流量,为什么?

实际上使用Charles,我们正在执行一种MIM(MAN-IN-MIDDLE)攻击。 避免这种攻击的流行策略是证书固定。 我们在构建应用程序时将证书副本存储在应用程序捆绑包中,并在连接期间将其与服务器证书进行比较。 如果使用SSL固定或任何其他类型的端到端加密(WhatsApp),则无法使用charles代理对其进行解密。 要了解有关证书固定的更多信息,请单击此处。

断点:

断点是程序中有意停止或暂停的位置,用于调试目的。

是的,Charles允许我们暂停并进行请求和响应的编辑。 当我们的UI和功能完全取决于服务器响应时,我们可以自定义响应以基于数据识别不同的行为。 这样,可以轻松地重新创建复杂且耗时的会话超时等场景。 而且,这使我们能够在不更改服务器中数据的情况下工作,因此不会打扰我的同事。 观看Break Point演示视频。

记录请求和响应:

如果您发现与收到的响应有关的任何错误,则可以立即保存任何API调用的响应,这有助于轻松地重现该错误(或者),您可以保存整个Charles会话以标识缺陷的确切情况。带有可以间歇性重现的错误,最好保存整个Charles会话。

要保存回复,请右键单击任何流量,然后选择保存回复。

要保存整个会话,请选择文件->将会话另存为。

本地和远程映射

一旦您努力编辑响应,就可以通过保存响应并将URL映射到本地保存的响应来使您的应用一次又一次地被点击。 如果您针对产品和质量检查使用不同的Web API,并且要在这两个Web API中进行测试,则可以通过远程映射自动更改URL。 观看本地映射和远程映射演示。

重复和负载测试

您不需要您的应用或设备即可根据请求访问服务器。 使用Charles代理,您可以使用保存会话并重复流量。 我们的应用最多可以同步处理多少用户,这可以通过负载测试来确定。 可以使用高级重复工具在Charles中完成负载测试。 您可以选择URL到达服务器所需的时间及其并发性。 在Charles中,右键单击相应的URL,您可以找到重复和重复高级。

节流

节流有助于我们在不同的网络条件(2G,3G,4G,2Mbps,100Mbps)下测试我们的应用程序。 请记住,如果您的网络不支持高速,那么节流将不会对您有所帮助。

镜子

Mirror允许我们自动保存响应。 这里使用“镜像”一词的原因是,它只是通过用文件夹和子文件夹分隔网站流量来预测网站流量(与您在Charles代理的结构视图中看到的相同)。

黑名单和白名单

“将联系人列入白名单,只有他们可以给您打电话。 已列入黑名单的联系人,但彼此之间只有对方可以给您打电话”。 我认为以上陈述有助于您了解黑名单和白名单。 将URL添加到白名单将仅允许这些URL往返于代理服务器。 将URL添加到黑名单将阻止这些URL通过代理。

DNS欺骗

DNS缓存中毒是一种技术,攻击者可以控制DNS服务器并更改其IP地址条目以将流量转移到网站。 DNS缓存中毒可能不是空中疾病,但很容易从一台服务器传播到另一台服务器。

更多探索:

反向代理和命令行工具是其他功能。 请记住,使用查尔斯,您可以像在邮递员中一样编写查询。 如果您更关注安全性,那么请通过OWASP了解ZAP代理。

常见问题解答:Charles Proxy是免费的软件吗?

不,n 它有30天—免费试用,费用为每张许可证30美元。 要了解更多,请点击这里。

常见问题解答:有什么要检查免费版本?

嗯,所有功能都可用, 但是每隔30分钟应用程序将关闭,而在将应用程序重新加载回时,您可能会面临长达10秒的延迟。

常见问题:Charles Proxy有其他替代方法吗?

Fiddler,mitmproxy-开源等等。

有关更多常见问题解答,请单击此处