首页 > 编程知识 正文

lte网络优化常见问题,网络信息安全常见问题

时间:2023-05-03 09:24:09 阅读:181469 作者:359

个人资料: mPaas-WKWebview网络侦听常见问题

1 .背景

本机WKWebView在独立于app进程的进程中执行网络请求,请求数据不经过主进程,因此无法直接在WKWebView上使用NSURLProtocol截获请求。 但是,由于mPaas的离线数据包机制高度依赖于网络侦听,基于此,mPaas利用WKWebview的隐藏api注册互联网侦听请求以满足离线数据包业务的需要参考代码如下。

[ wkbrowsingcontextcontrollerregisterschemeforcustomprotocol : @ ' https ' ]但是,由于性能原因,wk的网络请求将数据传递给主进程脱机包场景在截获后会丢失请求的body参数,页面资源不需要body数据,因此脱机包可以正常使用,不受影响。 但是,H5页中的其他post请求将会丢失data参数。 为了解决post参数丢失的问题,mPaas通过向js注入代码,hook解决了js上下文中的XMLHTTPRequest对象。 在JS层构建方法的内容,通过WKWebView的消息句柄机制将内容传递给主进程,保存对应的HTTPBody,通知JS方继续该请求,网络请求到达主进程后,pope 整个流程请参考以前明亮悟空的共享流程图:

图1

2 .面临的问题

上述机制既解决了脱机软件包资源侦听诉求,也解决了post请求主体丢失的问题。 但在一些场合还存在一些问题,需要开发者去适应。

2.1. mPaas集装箱与三方集装箱混用导致三方集装箱请求主体丢失

2.1.1 .问题场景

典型的方案是在App中同时集成多个WKwebview容器,常见的问题现象如下: 打开mPaas容器后,如果打开第三方WK页面,第三方WK页面中的post请求body参数将丢失。 原因是mPaas容器注册了全局网络侦听,因此三方容器中的请求也到达了mPaas网络侦听,但由于mPaas容器未启动,无法成功链接到mPaas全局侦听补充body

2.1.2 .解决方案

三方容器创建时反向注册,废弃时重新注册。

j//class cls=nsclassfromstring (wkbrowsingcontextcontroller ) )重新注册; elsel=nsselectorfromstring ([ nsstringstringwithformat : @ ' unregisterschemeforcustomprotocol 3360 ' ] ); if () (cls respondsToSelector:sel] ) ) ) clsperformselector 3360 selwithobject 3360 @ ' http '; [(id ) clsperformselector : selwithobject : @ ' https ' ]//class cls=nsclassfromstring (wkbrowsingcontextcontcontrollllect elsel=nsselectorfromstring ([ nsstringstringwithformat : @ ' registerschemeforcustomprotocol 3360 ' ] ); if((id ) cls respondsToSelector:sel] ) )计划语言诊断pragmaclangdiagnosticignored '-warc-perforred [ (id ) clsperformselector : selwithobject 3360 @ ' https ' ] # pragma }

2.2.1 .问题场景

与上面的第一个case类似,它在App中同时集成了多个wkwebview容器,同时三方容器也操作全局网络侦听,禁用mPaas的网络侦听。 常见的问题现象是,打开三方容器后,打开mPaas的离线软件包后,发现离线软件包通过在线网络直接访问虚拟域名,不离线,页面空白。

2.2.1 .解决方案

第一个问题的解决方案是,在启动mPaas容器时,只需确认全局网络监听正常有效即可。

2.3. mPaas容器中的发送beacn请求body丢失

2.3.1 .问题场景

有客户在容器内集成神策植入点jssdk,发现植入点请求中的body参数丢失。 从源代码来看,神策jssdk是通过navigator.sendBeacon发送的请求,目前mPaas中hook的js请求只支持XMLHTTPRequest,sendBeacon还不支持

图2

2.3.1 .解决方案

神策sdk内支持指定的ajax方式并向埋设点报告,将报告方式修正为ajax以解决问题。 参考文后资料[1]了解详情。

图3

[1]JavaScript SDK使用说明: https://www.sensors data.cn/2.0/manual/js _ SDK.html

我们是AlibabaCloud (阿里巴巴云)智能全球技术服务-SRE团队,我们致力于成为以技术为基础、面向服务、保障业务系统高可用性的工程师团队。 通过提供专业、系统化的SRE服务,许多客户可以更好地使用云,基于云构建更稳定、可靠的业务系统,提高业务稳定性。 我们希望企业客户能够访问云,利用云,使客户的云中业务更加稳定,并共享更多可靠的技术。 你可以用钉子扫描下面的二维码,加入AlibabaCloud (阿里巴巴云) SRE技术学院的钉钉圈,还可以就云平台与很多云上的人进行交流。

原文链接: https://developer.a liyun.com/article/784303?

版权声明:本文内容由AlibabaCloud (阿里巴巴云)实名注册用户自愿贡献,版权归原作者所有,AlibabaCloud (阿里巴巴云)开发者社区没有该版权,也承担相应的法律责任具体规则请确认《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。 如果发现本社区有涉嫌剽窃的内容,请填写侵权投诉表格并举报,一经确认,本社区将立即删除涉嫌侵权的内容。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。