CN113704669B - 用于网页运行的数据处理方法和装置 - Google Patents
用于网页运行的数据处理方法和装置 Download PDFInfo
- Publication number
- CN113704669B CN113704669B CN202111019274.1A CN202111019274A CN113704669B CN 113704669 B CN113704669 B CN 113704669B CN 202111019274 A CN202111019274 A CN 202111019274A CN 113704669 B CN113704669 B CN 113704669B
- Authority
- CN
- China
- Prior art keywords
- webpage
- module
- embedded
- style
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种用于网页运行的数据处理方法和装置。该方法包括:通过对获取的网页加载基础数据进行识别,获得被嵌网页代码数据,将被嵌网页代码数据传递至预设的网页沙盒,对预设的网页沙盒进行初始化操作,获得运行网页沙盒,通过在运行网页沙盒中执行被嵌网页代码数据,实现了被嵌网页与宿主网页的隔离运行,且被嵌网页代码数据对应运行网页沙盒,当多个被嵌网页运行时,也实现了不同的被嵌网页之间的隔离运行,解决了现有技术中网页运行过程中缺乏隔离导致数据安全性较低的技术问题,实现了提高网页隔离程度和数据安全性的技术效果。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种用于网页运行的数据处理方法和装置。
背景技术
在进行网页展示的过程中,在进行网页展示过程中,由于业务需要,网页开发者需要将其他的内容嵌入当前的网页进行展示。或者由于自身公司的需要,将新旧系统的网页界面混合地在同一个网页中去显示,现有技术中主要通过使用HTML语言定义的Iframe元素去完全隔离不同页面内容、在不同的Iframe元素下展示不同来源的网页内容。但是,通过Iframe的形式去显示不同内容,在Iframe加载网页后,出于浏览器定义的跨域限制策略,网页中的来自同源站点的JavaScript脚本可以改变父页面的全局对象,包括父页面内自行声明的全局方法;继而内嵌IFrame的脚本有可能改动到宿主页面的页面内容、存储数据等数据,从而引发安全问题。
发明人发现,针对现有技术中网页运行过程中缺乏隔离导致数据安全性较低的技术问题,现有技术中并未存在有效的解决方案。
发明内容
本申请的主要目的在于提供一种用于网页运行的数据处理方法和装置,实现同一来源站点的网页的隔离,提高网页运行过程中的数据安全性。
有鉴于此,根据本申请的第一方面,提出了一种用于网页运行的数据处理方法,包括:
获取网页加载基础数据,其中,所述网页加载基础数据为用户在宿主网页上加载被嵌页面所需要的数据;
对所述网页加载基础数据进行识别,得到被嵌网页代码数据;
基于所述被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒;以及
通过所述运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行所述被嵌网页。
进一步地,基于所述被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒包括:
对所述宿主网页进行初始化操作,获得影子文档对象模型;
基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块;
基于所述影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块;
基于所述影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块;
获得运行网页沙盒,所述运行网页沙盒包括所述运行语言安全模块、所述运行样式安全模块和所述运行框架安全模块。
进一步地,基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块包括:
获取浏览器的应用程序接口;
将所述浏览器的应用程序接口注入预设的代码解释器,以实现计算机语言的互相调用;
对所述浏览器的应用程序接口和所述预设的代码解释器进行编译操作,获得字节码模块,其中,所述字节码模块为浏览器可运行的编译模块;
根据所述浏览器的应用程序接口和所述影子文档对象模型,对所述字节码模块进行初始化操作,获得所述运行语言安全模块,实现所述被嵌网页的代码隔离。
进一步地,基于所述影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块包括:
基于所述被嵌网页代码数据在文档对象模型中进行样式插入操作,获得样式文件数据;
通过预设代码逻辑过滤规则,对所述样式文件数据进行过滤,获得样式标签数据;
将所述样式标签数据放置于所述影子文档对象模型中,获得所述运行样式安全模块,实现所述被嵌网页的样式隔离。
进一步地,基于所述被嵌网页代码数据在文档对象模型中进行样式插入操作,获得样式文件数据包括:
若所述被嵌网页代码数据通过外部资源标签的方式进行样式插入操作,下载所述样式文件数据,其中,所述样式文件数据与所述外部资源标签对应;
若所述被嵌网页代码数据通过文档定义样式标签的方式进行样式插入操作,获得所述样式文件数据,其中,所述样式文件数据与所述文档定义定义样式标签对应。
进一步地,基于所述影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块包括:
对所述影子文档对象模型进行结构化处理,获得文档对象模型树根节点;
调用与所述文档对象模型树根节点对应的虚拟文档对象,实现所述被嵌网页的框架隔离。
进一步地,通过所述运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行所述被嵌网页包括:
基于所述运行网页沙盒对所述被嵌网页进行样式设置和全局设置;
基于所述运行网页沙盒中的代码解释器执行所述被嵌网页代码数据,在所述宿主网页上隔离运行所述被嵌网页。
根据本申请的第二方面,提出了一种用于网页运行的数据处理装置,包括:
获取模块,用于获取网页加载基础数据,其中,所述网页加载基础数据为用户在宿主网页上加载被嵌页面所需要的数据;
识别模块,用于对所述网页加载基础数据进行识别,得到被嵌网页代码数据;
初始化模块,基于所述被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒;以及
运行模块,通过所述运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行所述被嵌网页。
进一步地,初始化模块包括:
过程获取模块,用于对所述宿主网页进行初始化操作,获得影子文档对象模型;
第一初始化模块,基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块;
第二初始化模块,基于所述影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块;
第三初始化模块,基于所述影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块;
运行沙盒获取模块,用于获得运行网页沙盒,所述运行网页沙盒包括所述运行语言安全模块、所述运行样式安全模块和所述运行框架安全模块。
根据本申请的第三方面,提出了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于上述的用于网页运行的数据处理方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请中,通过对获取的网页加载基础数据进行识别,获得被嵌网页代码数据,将被嵌网页代码数据传递至预设的网页沙盒,对预设的网页沙盒进行初始化操作,获得运行网页沙盒,通过在运行网页沙盒中执行被嵌网页代码数据,实现了被嵌网页与宿主网页的隔离运行,且被嵌网页代码数据对应运行网页沙盒,当多个被嵌网页运行时,也实现了不同的被嵌网页之间的隔离运行,解决了现有技术中网页运行过程中缺乏隔离导致数据安全性较低的技术问题,实现了提高网页隔离程度和数据安全性的技术效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请提供的一种用于网页运行的数据处理方法的流程示意图;
图2为本申请提供的一种用于网页运行的数据处理方法的流程示意图;
图3为本申请提供的一种用于网页运行的数据处理装置的结构示意图;
图4为本申请提供的另一种用于网页运行的数据处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,“连接”可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)及JavaScript共同构建了网页的展示和交互,其中,HTML为超文本标记语言,用于布局网页中的元素,CSS是级联样式表,用于对网页的样式进行设置,JavaScript是一种脚本语言,用于在网页中控制HTML中的每一个元素,增加或删减等。
图1为本申请提供的一种用于网页运行的数据处理方法的流程示意图,如图1所示,该方法包括以下步骤:
S101:获取网页加载基础数据;
当用户在宿主页面上触发请求访问被嵌页面的操作时,获取网页加载基础数据,网页加载基础数据为用户在宿主网页上加载被嵌页面所需要的数据。
S102:对网页加载基础数据进行识别,得到被嵌网页代码数据;
对网页记载基础数据进行识别,获得被嵌网页的预设语言代码数据,如,HTML代码数据、JavaScript代码数据,若为JavaScript代码数据,将JavaScript代码数据上传至服务器,获得JavaScript代码数据对应的统一资源定位地址URL;在宿主网页中通过JavaScript代码下载URL对应的被嵌网页代码数据。
S103:基于被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒;
通过被嵌网页代码数据对宿主网页中预设的网页沙盒进行初始化操作,获得与被嵌网页对应的运行网页沙盒,构建了被嵌网页运行的隔离环境,实现了被嵌网页与宿主网页,若存在多个被嵌网页,每个被嵌网页初始化与其对应的运行网页沙盒,以实现不同被嵌网页之间的隔离。
图2为本申请提供的一种用于网页运行的数据处理方法的流程示意图,如图2所示,该方法包括以下步骤:
S201:对宿主网页进行初始化操作,获得影子文档对象模型;
通过宿主网页在浏览器中插入对应元素,获得影子文档对象模型,浏览器具有提供影子文档对象模型的功能,通过宿主网页初始化操作,获得影子文档对象模型。
S202:基于影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块;
获取浏览器的应用程序接口(API);
将浏览器的应用程序接口注入预设的代码解释器,以实现计算机语言的互相调用;
代码解释器是由C++语言编写的,浏览器并不能直接运行,通过将浏览器API注入代码解释器,实现C++和JavaScript的互相调用,具体包括:
(1)通过预设编程范式,如基于Emscripten的编程范式,将将JavaScript函数提供给C++模块使用。
(2)JavaScript侧复杂对象序列化为二进制Buffer传递到C++侧然后反序列化为C++数据结构。
(3)C++数据结构序列化到二进制Buffer传到JavaScript侧然后反序列化为JavaScript对象。
对浏览器的应用程序接口和所述预设的代码解释器进行编译操作,获得字节码模块,其中,所述字节码模块为浏览器可运行的编译模块;
使用Emscripten对代码解释器和浏览器API进行编译,获得字节码模块(Webassembly模块),其中,浏览器可以直接运行Webassembly模块。
根据浏览器API和所述影子文档对象模型,对字节码模块进行初始化操作,获得运行语言安全模块,实现被嵌网页的代码隔离。
语言安全模块为JavaScript语言安全模块,通过使用Webassembly工具链将由C++语言编写的JavaScript解释器QuickJS编译成浏览器可以运行的WebAssembly模块。需要被执行的JavaScript代码将以纯文本字符串的形式传递给这个解析器模块解析、执行,而不是在浏览器提供的JavaScript引擎中直接执行,实现了被嵌网页和宿主网页的代码隔离,从而实现被嵌网页运行过程中的语言安全。
S203:基于影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块;
基于被嵌网页代码数据在文档对象模型中进行样式插入操作,获得样式文件数据;
在影子文档对象模型中进行样式插入操作,包括以下两种方式:
(1)若被嵌网页代码数据通过外部资源标签的方式进行样式插入操作,下载样式文件数据,其中,样式文件数据与外部资源标签对应。
如果被嵌网页代码数据通过在文档对象模型中插入一个虚拟的、沙盒中声明的Link标签的方式插入样式,那么内部逻辑会下载该Link标签指向的样式文件。
(2)若被嵌网页代码数据通过文档定义样式标签的方式进行样式插入操作,获得样式文件数据,其中样式文件数据与文档定义定义样式标签对应。
如果被嵌网页代码通过往文档对象模型插入虚拟的、沙盒中声明的Style标签的方式插入样式。
通过预设代码逻辑过滤规则,对样式文件数据进行过滤,获得样式标签数据;对样式文件中的“position:fixed”规则以及使用“:host”CSS选择器声明的规则进行过滤,得到样式标签数据。
将样式标签数据放置于所述影子文档对象模型内一个真实的Style表现生效,以实现被嵌网页对应的影子文档模型中的样式设置,获得运行样式安全模块,实现被嵌网页的样式隔离。
样式安全模块为CSS样式安全模块,实现不同沙盒之间,沙盒与宿主网页之间的CSS样式隔离,避免不同环境下声明的网页样式互相影响。
它是基于万维网联盟(W3C)文档对象模型(DOM)中定义的、由浏览器提供的影子文档对象模型(Shadow DOM)。在该影子文档对象模型下,它可以拥有自己的影子文档对象模型树状结构(Shadow Tree)。影子文档对象模型树拥有局部样式规则,外界主文档和影子文档对象模型树各自声明的样式不会相互影响。所以需要被内嵌的样式将会定义在某一影子文档对象模型树下,从而实现样式隔离。为了避免内容影响主网页的视口大小,被内嵌网页内容的样式声明中的“position:fixed”规则以及使用“:host”CSS选择器声明的规则将会被内部的代码逻辑过滤、忽略。
通过影子文档对象模型和预设的样式安全模块,实现了被嵌网页和宿主网页的样式隔离,通过过滤规则,过滤掉具有突破隔离性质的声明规则,提高了被嵌网页与宿主网页的隔离程度,避免被嵌网页与宿主网页的样式影响,实现了被嵌网页和宿主网页的样式隔离,从而实现被嵌网页运行过程中的样式安全。
S204:基于影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块;
对影子文档对象模型进行结构化处理,获得文档对象模型树根节点;
调用与文档对象模型树根节点对应的虚拟文档对象,实现被嵌网页的框架隔离。
通过框架安全模块,提供一个虚拟的JavaScript文档对象,虚拟的JavaScript文档对象对应的文档对象模型树根节点是影子文档对象模型。
框架安全模块为HTML安全模块,被嵌网页的文档对象模型树是建立在影子文档对象模型根节点下,具有独立的ID空间,避免被嵌网页与宿主网页对文档对象模型树的ID编排出现冲突;被嵌网页的文档对象模型树的树状结构中的节点对于宿主网页的JavaScript选择器隐身,实现被嵌网页与宿主页面的框架隔离。
通过影子文档对象模型和HTML安全模块,为被嵌页面提供影子文档对象模型根节点下的文档对象模型树,从而实现宿主网页与被嵌网页的文档对象的隔离,宿主网页中的JavaScript均不能控制被嵌网页中HTML中的元素,被嵌网页中的JavaScript不能控制宿主网页中HTML中的元素,实现了被嵌网页和宿主网页的框架隔离。
S205:获得运行网页沙盒,运行网页沙盒包括运行语言安全模块、运行样式安全模块和运行框架安全模块。
通过运行网页沙盒包括运行语言安全模块、运行样式安全模块和运行框架安全模块,实现了被嵌网页与宿主网页的代码隔离、样式隔离和框架隔离,提高了被嵌网页与宿主页面的隔离程度,从而提高了网页运行过程中数据安全性。
S104:通过运行网页沙盒执行被嵌网页代码数据,以在宿主页面上隔离运行被嵌网页。
基于运行网页沙盒对被嵌网页进行样式设置和全局设置;
基于运行网页沙盒中的代码解释器执行被嵌网页代码数据,在宿主网页上隔离运行被嵌网页。
将被嵌网页代码文件输入运行网页沙盒的QuickJS解释器中,执行被嵌网页代码数据,生成被嵌网页在宿主页面中进行展示。
图3为本申请提供的一种用于网页运行的数据处理装置的结构示意图,如图3所示,该装置包括:
获取模块31,用于获取网页加载基础数据,其中,网页加载基础数据为用户在宿主网页上加载被嵌页面所需要的数据;
识别模块32,用于述网页加载基础数据进行识别,得到被嵌网页代码数据;
初始化模块33,基于被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒;以及
运行模块34,通过运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行被嵌网页。
图4为本申请提供的另一种用于网页运行的数据处理装置的结构示意图,如图4所示,该装置包括:
过程获取模块41,用于对所述宿主网页进行初始化操作,获得影子文档对象模型;
第一初始化模块42,基于影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块;
第二初始化模块43,基于影子文档对象模型和被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块;
第三初始化模块44,基于影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块;
运行网页沙盒模块45,用于获得运行网页沙盒,运行网页沙盒包括运行语言安全模块、运行样式安全模块和运行框架安全模块。
关于上述实施例中各单元的执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,在本申请中,通过对获取的网页加载基础数据进行识别,获得被嵌网页代码数据,将被嵌网页代码数据传递至预设的网页沙盒,对预设的网页沙盒进行初始化操作,获得运行网页沙盒,通过在运行网页沙盒中执行被嵌网页代码数据,实现了被嵌网页与宿主网页的隔离运行,且被嵌网页代码数据对应运行网页沙盒,当多个被嵌网页运行时,也实现了不同的被嵌网页之间的隔离运行,解决了现有技术中网页运行过程中缺乏隔离导致数据安全性较低的技术问题,实现了提高网页隔离程度和数据安全性的技术效果。
可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application SpecificIntegrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (7)
1.一种用于网页运行的数据处理方法,其特征在于,包括:
获取网页加载基础数据,其中,所述网页加载基础数据为用户在宿主网页上加载被嵌页面所需要的数据;
对所述网页加载基础数据进行识别,得到被嵌网页代码数据;
基于所述被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒;以及
通过所述运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行所述被嵌网页;
其中,基于所述被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒,包括:
对所述宿主网页进行初始化操作,获得影子文档对象模型;
基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块;
基于所述影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块;
基于所述影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块;
获得运行网页沙盒,所述运行网页沙盒包括所述运行语言安全模块、所述运行样式安全模块和所述运行框架安全模块;
其中,基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块包括:
获取浏览器的应用程序接口;
将所述浏览器的应用程序接口注入预设的代码解释器,以实现计算机语言的互相调用;
对所述浏览器的应用程序接口和所述预设的代码解释器进行编译操作,获得字节码模块,其中,所述字节码模块为浏览器可运行的编译模块;
根据所述浏览器的应用程序接口和所述影子文档对象模型,对所述字节码模块进行初始化操作,获得所述运行语言安全模块,实现所述被嵌网页的代码隔离。
2.根据权利要求1所述的数据处理方法,其特征在于,基于所述影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块包括:
基于所述被嵌网页代码数据在文档对象模型中进行样式插入操作,获得样式文件数据;
通过预设代码逻辑过滤规则,对所述样式文件数据进行过滤,获得样式标签数据;
将所述样式标签数据放置于所述影子文档对象模型中,获得所述运行样式安全模块,实现所述被嵌网页的样式隔离。
3.根据权利要求2所述的数据处理方法,其特征在于,基于所述被嵌网页代码数据在文档对象模型中进行样式插入操作,获得样式文件数据包括:
若所述被嵌网页代码数据通过外部资源标签的方式进行样式插入操作,下载所述样式文件数据,其中,所述样式文件数据与所述外部资源标签对应;
若所述被嵌网页代码数据通过文档定义样式标签的方式进行样式插入操作,获得所述样式文件数据,其中,所述样式文件数据与所述文档定义样式标签对应。
4.根据权利要求1所述的数据处理方法,其特征在于,基于所述影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块包括:
对所述影子文档对象模型进行结构化处理,获得文档对象模型树根节点;
调用与所述文档对象模型树根节点对应的虚拟文档对象,实现所述被嵌网页的框架隔离。
5.根据权利要求1所述的数据处理方法,其特征在于,通过所述运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行所述被嵌网页包括:
基于所述运行网页沙盒对所述被嵌网页进行样式设置和全局设置;
基于所述运行网页沙盒中的代码解释器执行所述被嵌网页代码数据,在所述宿主网页上隔离运行所述被嵌网页。
6.一种用于网页运行的数据处理装置,其特征在于,包括:
获取模块,用于获取网页加载基础数据,其中,所述网页加载基础数据为用户在宿主网页上加载被嵌页面所需要的数据;
识别模块,用于对所述网页加载基础数据进行识别,得到被嵌网页代码数据;
初始化模块,基于所述被嵌网页代码数据对预设网页沙盒进行初始化操作,得到运行网页沙盒;以及
运行模块,通过所述运行网页沙盒执行所述被嵌网页代码数据,以在所述宿主页面上隔离运行所述被嵌网页;
初始化模块包括:
过程获取模块,用于对所述宿主网页进行初始化操作,获得影子文档对象模型;
第一初始化模块,基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块;
第二初始化模块,基于所述影子文档对象模型和所述被嵌网页代码数据,对预设的样式安全模块进行初始化操作,获得运行样式安全模块;
第三初始化模块,基于所述影子文档对象模型,对预设的框架安全模块进行初始化操作,获得运行框架安全模块;
运行沙盒获取模块,用于获得运行网页沙盒,所述运行网页沙盒包括所述运行语言安全模块、所述运行样式安全模块和所述运行框架安全模块;
其中,第一初始化模块,基于所述影子文档对象模型,对预设的语言安全模块进行初始化操作,获得运行语言安全模块包括:
获取浏览器的应用程序接口;
将所述浏览器的应用程序接口注入预设的代码解释器,以实现计算机语言的互相调用;
对所述浏览器的应用程序接口和所述预设的代码解释器进行编译操作,获得字节码模块,其中,所述字节码模块为浏览器可运行的编译模块;
根据所述浏览器的应用程序接口和所述影子文档对象模型,对所述字节码模块进行初始化操作,获得所述运行语言安全模块,实现所述被嵌网页的代码隔离。
7.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1至5任一所述的用于网页运行的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111019274.1A CN113704669B (zh) | 2021-09-01 | 2021-09-01 | 用于网页运行的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111019274.1A CN113704669B (zh) | 2021-09-01 | 2021-09-01 | 用于网页运行的数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704669A CN113704669A (zh) | 2021-11-26 |
CN113704669B true CN113704669B (zh) | 2022-10-14 |
Family
ID=78658623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111019274.1A Active CN113704669B (zh) | 2021-09-01 | 2021-09-01 | 用于网页运行的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704669B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088379A (zh) * | 2011-01-24 | 2011-06-08 | 国家计算机网络与信息安全管理中心 | 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置 |
CN106789877A (zh) * | 2016-11-15 | 2017-05-31 | 杭州安恒信息技术有限公司 | 一种基于沙箱的漏洞验证系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021168B (zh) * | 2011-12-28 | 2017-06-16 | 北京奇虎科技有限公司 | 一种浏览网页的方法及装置 |
AU2014346390B2 (en) * | 2013-11-11 | 2018-06-21 | Adallom, Inc. | Cloud service security broker and proxy |
CN103699600A (zh) * | 2013-12-13 | 2014-04-02 | 北京奇虎科技有限公司 | 网页快照的数据处理方法和浏览器 |
CN112597412A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种页面加载方法及装置 |
CN113076501A (zh) * | 2021-04-21 | 2021-07-06 | 广州虎牙科技有限公司 | 一种页面处理方法、存储介质及设备 |
-
2021
- 2021-09-01 CN CN202111019274.1A patent/CN113704669B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088379A (zh) * | 2011-01-24 | 2011-06-08 | 国家计算机网络与信息安全管理中心 | 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置 |
CN106789877A (zh) * | 2016-11-15 | 2017-05-31 | 杭州安恒信息技术有限公司 | 一种基于沙箱的漏洞验证系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113704669A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10726195B2 (en) | Filtered stylesheets | |
US10346502B2 (en) | Mobile enablement of existing web sites | |
US20150286739A1 (en) | Html5-protocol-based webpage presentation method and device | |
US20090132904A1 (en) | Method, Apparatus and Computer Program Product for Interactive Surveying | |
US7784026B1 (en) | Web application internationalization | |
CN104375808B (zh) | 界面显示方法及装置 | |
US20140281863A1 (en) | Enhanced mobilization of existing web sites | |
CN112612448A (zh) | 前端国际化多页面打包方法、装置及计算机设备 | |
US20080046872A1 (en) | Compiler using interactive design markup language | |
CN110263279B (zh) | 页面生成方法、装置、电子设备和计算机可读存储介质 | |
US10671801B2 (en) | Markup code generator | |
CN114297549A (zh) | 组件处理方法及装置 | |
CN113704669B (zh) | 用于网页运行的数据处理方法和装置 | |
US20080155493A1 (en) | Method for ensuring unique identification of program elements across multiple executions | |
CN112287255A (zh) | 页面构建方法及装置、计算设备、计算机可读存储介质 | |
CN113704668B (zh) | 用于网页开发的数据处理方法和装置 | |
CN113656000B (zh) | 网页的处理方法和装置 | |
CN115935095A (zh) | 页面的生成方法及装置、电子设备、存储介质 | |
CN103838556A (zh) | 一种客户端程序的设计实现方法 | |
CN115328455A (zh) | flutter应用的信息显示方法、装置、设备及介质 | |
CN103885988A (zh) | 输出内容的方法及装置、内容输出系统 | |
CN116009863B (zh) | 前端页面渲染方法、设备及存储介质 | |
CN117194831A (zh) | 一种网络应用展示方法、装置、计算机设备及存储介质 | |
CN116861848A (zh) | 富文本跨平台显示方法、装置、设备和存储介质 | |
Puder et al. | Byte code level cross-compilation for developing web applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |