公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站

view

中心原因便是为了处理管控与安全问题

根据Web技能来烘托小程序存在一些不可控因素安全风险

Web技能对错常开标签10放灵敏的,咱们能够运用JavaScript脚本随意地跳转网页或许改动界面上的恣意内容。

小程序本来界说了一套内置组件以供给一致的体会,用户进入小程序时,小程序代码包会被标签11拉到公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站本地使得小程序能够离线阅读(只需小程序开发者把一些运用数据缓存到了本地公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站),但要是开发者经过JavaScript 把烘托小程序的 WebView 跳转到其他在线网页,这个体会就变得十分糟。

供给一种能够展现敏感数据的组件(这些数据只能被展现,开发者并不能拿到数据),若开发者能够经过JavaScript 操作界面(DOM树),然后直接获取这些敏感数据,那小程序毫无安全可言。这就导致有必要阻挠开发者运用一些阅读器供给的,比如跳转页面标签11、操作DOM、动态履行脚本的开放性公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站接口。一个一个制止势必会进入一个攻防战,由于 JavaScript 的灵敏性以及阅读器接口的丰富性,很简单遗失一些风险的接口,并且就算被咱们找到一切风险的接口,或许鄙人一次阅读器内核更新而新增了一个或许会在这套体系下发生缝隙的接口,这样仍是无法完全避免。

要彻底处理这个问题,就有必要供给一个沙箱环境来运转开发者的JavaScript 代码。这个沙箱环境不能有任何阅读器相关接口,只供给纯JavaScript 的解说履行环境,那么像HTML5中的ServiceWorker、WebWorker特性就契合这样的条件,这两者都是启用另一线程来履行 JavaScript。可是考虑到小程序是一个多 WebView 的架构,每公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站一个小程序页面都是不同标签5的WebView 烘托后显现的,在这个架构下咱们欠好去用某个WebView中的ServiceWorker去管理一切的小程序页面。

得益于客户端体系有JavaScript 的解说引擎(在iOS下是用内置的 JavaScriptCore结构,在安卓则是用腾讯x5内核供给的JsCore环境),咱们能够创立一个独自的线程去履行 JavaScript,在这个环公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站境下履行的都是有关小程序事务逻辑的代码,也便是所说的逻辑层。而界面烘托相关的使命全都在WebView线程里履行,经过逻辑层代码去操控烘托哪公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站些界面,那么公主日记-亚搏app官方下载-亚搏app官方网-亚搏app官方网站这一层当然便是所谓的烘托层。这便是小程序双线程模型的由来。

觉得这篇文章有协助?请转发给更多人

Write a Comment

电子邮件地址不会被公开。 必填项已用 *标注