课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的app被推出市场,而今天我们就通过案例分析来了解一下,app软件在信息抓包和丢包问题上都有哪些解决方法。
部分应用不能抓包的原因
可以看到代理抓包的关键就是需要HTTP客户端按照要求去连接代理服务器,一般情况下我们已经在系统层面上设置了代理,通常http客户端都是按要求去实现的,在进行http请求前会先检查系统代理,如果有设置代理,客户端会直接使用完整uri去连接代理服务器。不同的平台通常会实现自己的的http客户端的,虽然他们都按照协议要求实现了代理功能,但是并不一定在默认情况下会直接使用系统代理。
在现实中这种况下这种情况还不少,笔者当前项目使用到的Flutter就是这种情况,默认Flutter不会主动使用系统代理,需要单独设置。(当然个人认为这种策略也是有理由,虽然给测试及调试带来了不便不过也在一程度上提高了些许数据安全)
正是因为HTTP客户端没有使用我们设置的系统代理,他们自然也不会连接Fiddler或Charles创建的代理服务器,终导致我们无法获取任何请求。
解决方案
不过既然我们已经知道了Fiddler和Charles不能抓包的具体原因,前面也提到了代理抓包的原理,那我们就总有办法解决。
前面说到了我们APP使用的HTTP客户端没有连接到代理服务器,导致我们的代理抓包软件无法正常抓包,那我们只要想办法让客户端重新连接到代理服务器就好了(当然这一切都是以不修改客户端软件APP为前提的)
方法1:控制DNS解析,通过修改dns的方式让客户端以为我们的代理服务器就是目标服务器。
优势:操作方便,通过修改设备的hosts可以十分方便的先
劣势:需要为每个需要操作的域名提前添加host
在手机等手持设备上难以修改hosts(即对移动APP这类应用很难实现)
方法2:在网络设备上直接做流量转发,将指定终端设备上发往80及443端口的数据直接转发到代理服务器的目标端口上
优势:可以针对连接到网络设备上的终端设备进行分别配置,而手机等终端设备不需要进行任何设备
劣势:需要单独的硬件设备
方法3:使用VPN将终端设备的流量转发到代理服务器
优势:使用VPN软件不用添加其他测试。
劣势:终端上的VPN默认会直接对所有流量进行转发,要进行合理的配置可能需要额外的学习成本
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。