一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据安全处理方法、浏览器系统、电子设备及存储介质与流程

2021-11-15 18:29:00 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种数据安全处理方法、浏览器系统、电子设备及计算机存储介质。


背景技术:

2.浏览器被广泛使用于人们的工作和生活中,通过浏览器可以检索、展示、传递和交互各种信息。
3.浏览器的实现离不开web技术,但长期以来,web前端数据的安全性一直无法得到有效保证。例如,在很多开放服务场景中,包括但不限于电子商务场景、各种类型的社区交互场景中等,存在各种访问web前端核心数据和信息(如前端日志数据等)的情形。因没有有效的基于web技术的前端数据安全性保障手段,容易造成数据泄密,为用户的数据安全带来挑战。


技术实现要素:

4.有鉴于此,本技术实施例提供一种数据安全处理方案,以至少部分解决上述问题。
5.根据本技术实施例的第一方面,提供了一种数据安全处理方法,包括:获取待执行的网页代码、所述网页代码的提供方对浏览器数据的访问权限信息;在预先构建的浏览器安全执行环境中,对所述网页代码进行解析和执行;并且,通过所述浏览器安全执行环境,在所述网页代码执行过程中,检测并滤除超出所述对浏览器数据的访问权限信息所指示的权限的访问操作。
6.根据本技术实施例的第二方面,提供了一种浏览器系统,包括:应用层、前端框架层、容器层和支持层;其中:所述前端框架层中至少设置有渲染引擎,所述前端框架层用于从所述应用层接收待执行的网页代码,并通过所述渲染引擎对所述网页代码进行用于网页渲染的解析,并将渲染解析的结果并发送给所述容器层;所述容器层中至少设置有浏览器安全执行环境,所述浏览器安全执行环境中设置有解析引擎和浏览器安全检测工具,所述容器层用于通过所述浏览器安全执行环境中的解析引擎对所述网页代码进行代码解析和代码执行,并且,通过所述浏览器安全检测工具对执行过程中的代码和所述前端框架层发送的渲染解析的结果进行检测,以检测并滤除超出所述网页代码的提供方对浏览器数据的访问权限信息所指示的权限的访问操作;所述支持层用于执行所述容器层发送来的访问操作。
7.根据本技术实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的方法对应的操作。
8.根据本技术实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
9.根据本技术实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如第一方面所述的方法对应的操作。
10.根据本技术实施例提供的数据安全处理方案,在浏览器中设置浏览器安全执行环境,并通过该安全执行环境在网页代码被执行时,基于预先获取的该网页代码的提供方对浏览器数据的访问权限信息,对网页代码的数据访问操作进行检测,若检测到超出访问权限的操作则进行滤除。由此,不管网页代码如何编写,不管采用何种方式编写,也不管是否经过加密,只要代码中的访问操作可被识别,均可对其进行是否超出访问权限的检测和处理。并且,该安全执行环境设置于浏览器中,可有效针对web前端数据,进一步避免网页代码故意或非故意地访问非权限内数据,提高了web前端数据的安全性,提升了用户的数据安全体验。
附图说明
11.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
12.图1为适用本技术实施例的数据安全处理方案的系统的示意图;
13.图2a为根据本技术实施例一的一种数据安全处理方法的步骤流程图;
14.图2b为图2a所示实施例中的一种场景示例的示意图;
15.图3a为根据本技术实施例二的一种数据安全处理方法的步骤流程图;
16.图3b为图3a所示实施例中的一种场景示例的示意图;
17.图4a为根据本技术实施例三的一种浏览器系统的结构框图;
18.图4b为图4a所示实施例的一种浏览器系统具体示例的结构示意图;
19.图5为根据本技术实施例四的一种一种电子设备的结构示意图。
具体实施方式
20.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
21.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
22.图1示出了一种适用本技术实施例的数据安全处理方法的示例性系统。如图1所示,该系统可以包括服务器100、通信网络200和/或一个或多个用户设备300,图1中示例为多个用户设备。本技术实施例中,用户设备300可以为企业用户端的用户设备。但不限于此,个人用户端的用户设备也同样可适用本技术实施例的方案。
23.服务器100可以是用于存储信息、数据、程序和/或任何其他合适类型的内容的任何适当的服务器。在一些实施例中,服务器100可以响应于用户设备300通过浏览器发送的请求,如网页内容获取请求、网址跳转请求、服务器100中存储的数据的访问请求,等等。例如,在一些实施例中,服务器100可以用于基于用户设备300通过浏览器发送来的网页代码
的提供方的信息,查找与提供方的信息相匹配的提供方对浏览器的访问权限信息,进而将该访问权限信息返回给用户设备300。
24.在一些实施例中,通信网络200可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络200能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字订户线路(dsl)网络、帧中继网络、异步转移模式(atm)网络、虚拟专用网(vpn)和/或任何其它合适的通信网络。用户设备300能够通过一个或多个通信链路(例如,通信链路2002)连接到通信网络200,该通信网络200能够经由一个或多个通信链路(例如,通信链路2004)被链接到服务器100。通信链路可以是适合于在用户设备300和服务器100之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
25.用户设备300可以包括适合于呈现浏览器界面,通过浏览器界面接收对浏览器内部数据或前端核心数据或服务器100中的数据或其它用户设备中的数据的访问的任何一个或多个用户设备。在一些实施例中,用户设备300可以包括任何合适类型的设备。例如,在一些实施例中,用户设备300可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、游戏控制台、媒体播放器、车辆娱乐系统和/或任何其他合适类型的用户设备。在一些实施例中,当用户设备300接收到通过网页代码对浏览器前端核心数据或内部数据的访问时,可通过本技术实施例的方案,确定网页代码提供方,将该提供方的信息发送给服务器100,并从服务器100获取该提供方对浏览器数据的访问权限信息;进而,通过浏览器安全执行环境来实现对网页代码中的超权限访问操作的检测和滤除,以保证web前端核心数据的安全。
26.尽管将服务器100图示为一个设备,但是在一些实施例中,可以使用任何适当数量的设备来执行由服务器100执行的功能。例如,在一些实施例中,可以使用多个设备来实现由服务器100执行的功能。或者,可使用云服务实现服务器100的功能。
27.基于上述系统,本技术实施例提供了一种数据安全处理方法,以下通过多个实施例进行说明。
28.实施例一
29.参照图2a,示出了根据本技术实施例一的一种数据安全处理方法的步骤流程图。
30.本实施例的数据安全处理方法包括以下步骤:
31.步骤s102:获取待执行的网页代码、所述网页代码的提供方对浏览器数据的访问权限信息。
32.本技术实施例中,所述网页代码可以为来自任意代码提供方的代码,例如,可以为解释型语言编写的代码如javascript(java脚本语言)代码,或是java语言代码,等。
33.在开放服务平台中,待执行的网页代码多根据开放服务平台提供的服务和开发工具编写,多运行在企业用户端即b端,这些网页代码通常可以获取其所属的b端用户的用户信息,也即网页代码提供方的信息,包括但不限于:提供方标识信息、提供方所使用或提供的服务的信息、提供方的位置信息,等等。而对b端用户来说,web前端数据中可能有些数据是不适宜开放的。此外,一些非b端用户的web前端数据也不应向b端用户开放。并且,属于一个b端用户的web前端数据也不应向另一b端用户开放。又或者,某些恶意用户会通过网页代码针对web前端数据进行攻击或者窃取数据等等。为此,本技术实施例中,还会获取网页代
码提供方对浏览器数据(包括但不限于web前端数据(包括核心和非核心前端数据)、浏览器内核数据等)的访问权限信息。该对浏览器数据的访问权限信息可以任何适当方式预先设置和存储,在需要时取用。网页代码提供方对浏览器数据的访问权限可以由开放服务平台根据该提供方所使用的具体服务为该提供方进行设置,也可以由其它第三方为该提供方设置。开放服务平台通常可提供至少一种服务(如电子商务服务、问答交互服务、音视频播放服务等),以电子商务服务为例,对于某网页代码提供方来说,因其使用该平台提供的电子商务服务,因此可通过浏览器对与其使用的电子商务服务相关的数据包括web前端数据(如商品展示数据,网页浏览数据等等)进行访问。若采用传统方式,对该网页代码提供方的网页代码不进行访问权限设置,则可能该提供方的网页代码中会存在有意或无意的对不应由其访问的web前端数据的访问(如访问web前端的日志数据、或者其它网页代码提供方的非公开数据如cookie数据或账号数据等),由此,为浏览器的数据安全和使用安全带来隐患。而本技术实施例中,在确定了该网页代码提供方所使用的服务如电子商务服务后,即可为其设置浏览器数据的访问权限,如为其设置可使用基本api调用的权限、可访问自身的web前端数据的权限等。一般来说,基本的bom api(browser object model,浏览器对象模型,简写为bom)的访问权限可以开放给网页代码提供方,其它浏览器数据访问权限尤其是web前端数据中的核心数据的访问权限需根据网页代码提供方所使用的具体服务设置。
34.在一种可行方式中,可以先获取网页代码提供方的信息,再根据网页代码提供方的信息如网页代码提供方的的标识信息等来获得网页代码提供方的对浏览器数据的访问权限信息。
35.需要说明的是,前述以用户为b端用户为示例,但本领域技术人员应当明了的是,本技术实施例的方案也同样适用于c端用户(即终端用户)。
36.其中,对c端用户的访问权限的设置与上述b端用户类似,主要以其所使用的服务为依据进行设置。而对于c端用户所待执行的网页代码来说,其通常由b端用户提供,因此,对c端用户的数据安全处理均可参照对b端用户的数据安全处理实现。
37.步骤s104:在预先构建的浏览器安全执行环境中,对所述网页代码进行解析和执行。
38.安全执行环境也可称为可信执行环境,它是一个完全独立的代码执行环境,具有自身的执行空间。在该环境中,可对实现相关功能的代码进行整体保护,具体到本技术实施例,可对实现浏览器的web前端数据访问进行非访问权限的检测和滤除的代码进行整体保护。例如,通过这些受保护的代码限制网页代码的提供方进行超出其对浏览器数据的访问权限的api调用访问,或者,限制网页代码的提供方进行超出其对浏览器数据的访问权限的dom节点渲染操作,从而使得对该提供方通过网页代码访问浏览器数据的操作完全可控。
39.在一种可行方式中,浏览器安全执行环境实现为基于类汇编语言的安全执行环境,且在该安全执行环境中还设置有浏览器的解析引擎,以对网页代码进行解析和执行。
40.其中,类汇编语言是一种面向计算机的低级程序设计语言,但与机器语言不同,它可以使用更多的字符,相较于机器语言具有更好的灵活性和可扩展性。因其灵活性和可扩展性,可基于此进行相应的功能设置,以满足不同的应用需求。又因不管是使用高级语言的网页代码还是使用解释型语言的网页代码均需通过中间语言代码如类汇编语言代码转换为最终的机器语言代码执行,也即,高级语言代码和解释型语言代码与类汇编语言代码不
具有直接相通性,因此,使得基于类汇编语言的的浏览器安全执行环境可以对代码进行有效隔离,对环境的安全性进行有效保证。
41.本技术实施例中,正是基于此,使用类汇编语言实现浏览器安全环境,对超出网页代码提供方对浏览器数据的访问权限的那些操作进行限制和处理,实现了web前端数据的安全保护。
42.但需要说明的是,在另一些实施方式中,也可以将对网页代码进行检测以滤除超访问权限操作的功能集成于javascript引擎(js引擎),但此种情况下,需要使用额外的手段(如逃逸检测或漏洞弥补等)避免因相同语言代码而导致的沙箱逃逸现象。
43.需要说明的是,本技术实施例中,如果网页代码自身即为解释型语言如javascript编写的代码,则通过解析引擎如js(javascript)引擎即可直接进行解析和执行,并且,在解析和执行过程中可基于类汇编语言的浏览器安全执行环境进行相应的代码检测。如果网页代码通过高级语言如编译语言(如c语言)编写,则可先将其转换为javascript代码后再通过js引擎解析和执行。因此,也可以认为本技术实施例中,对网页代码的解析和执行都可基于解释型语言如javascript语言进行。
44.步骤s106:通过浏览器安全执行环境,在网页代码执行过程中,检测并滤除超出对浏览器数据的访问权限信息所指示的权限的访问操作。
45.因目前的大部分网页代码都是通过javascript语言编写,如前所述,javascript语言是一种解释型语言,这类语言具有不需要编译就可以直接运行,边解析边运行的特点。基于此,对网页代码的检测是在网页代码的执行过程中实现的,也即,一边执行一边检测。当检测到网页代码需要执行的访问操作超出了网页代码提供方对浏览器数据的访问权限时,则不执行该访问操作(如非bom api的调用操作、dom树根节点的渲染操作等)。由此,保障了web前端数据安全。可选地,若访问操作超出权限,则除不执行该访问操作外,一种方式中,可以继续执行后续代码,以避免代码中止执行给用户带来的不便;另一种方式中,可以向用户返回错误提示并中止网页代码的执行,以便于用户察觉错误,及时修正。
46.而对于在网页代码提供方的访问权限内的访问操作,则放行,进一步可交给浏览器支持层进行相应的处理等,该浏览器支持层可提供浏览器运行所需的软硬件资源。
47.其中,所述访问操作包括但不限于浏览器api调用操作、浏览器界面渲染操作等。
48.具体到本技术实施例,浏览器包括:应用层、前端框架层、容器层和支持层。浏览器的应用层接收网页代码,并在接收到该网页代码后,会根据其提供方的信息如标识信息获取该提供方对浏览器数据的访问操作权限信息。浏览器的前端框架层中设置有渲染引擎,该前端框架层从应用层接收网页代码并通过渲染引擎对其进行用于网页渲染的解析,然后,将解析结果发送给容器层。浏览器的容器层中即设置有本技术实施例中的浏览器安全执行环境,在该环境中设置有解析引擎如js引擎及浏览器安全检测工具如通过webassembly实现的检测工具。一方面,该容器层通过解析引擎对网页代码进行解析和执行;另一方面,该容器层还接收前端框架层发送来的渲染解析的结果。进而,js引擎的解析结果和渲染解析的结果都交由安全检测工具进行检测,若检测出超出网页代码提供方的访问权限的访问操作(如调用超出权限的api或渲染dom树根节点等)则滤除或停止代码的执行。而对于未检测出网页代码提供方的访问权限的访问操作,则交由浏览器支持层执行。
49.以下,以一个具体示例对上述过程进行示意性说明,如图2b所示。
50.图2b中,b端用户x为一软件开发商,其开发的某网页代码用于展示其可提供的软件开发服务类型和历史开发的软件信息,该网页代码中包括有三个api调用信息,分别为api

1、api

2和api

3。假设,其中的api

2用于调用浏览器中相应的cookie api接口获得浏览器cookie信息。假设浏览器通过第三方针对网页代码进行浏览器数据的访问权限设置,则该第三方可根据用户x所提供的服务即软件开发服务为用户x设置权限,本示例中示意为用户x具有bom api调用权限,其中的api

1和api

3均属于bom api接口,但显然浏览器的cookie api接口不属于bom api接口,因此用户x不具有调用该cookie api接口的权限,也即,用户x对api

2的调用是超权限的。
51.则,基于本技术实施例和上述假设,该网页代码被浏览器应用层接收后,还会获取用户x的用户信息如用户x的标识信息,并基于该标识信息从第三方获取用户x对浏览器数据的访问权限信息,即本示例中的bom api调用权限。针对该网页代码,本示例中仅对浏览器使用浏览器安全执行环境中的解析引擎,本示例中为js引擎,对其进行解析为例进行说明。该网页代码通过js引擎被一边解析一边执行,当该解析后的网页代码执行至api

1时,浏览器安全环境中的安全检测工具如基于webassembly的安全检测工具会根据预先获得的用户x对浏览器数据的访问权限信息,判定用户x是否具有对该api的调用权限,本示例中,用户x具有该权限,则api

1调用操作被放行,api

1通过浏览器支持层进行api的调用。网页代码继续执行,当执行至api

2时,基于webassembly的安全检测工具再次根据预先获得的用户x对浏览器数据的访问权限信息,判定用户x是否具有对该api的调用权限,如前假设所述,用户x不具有该权限,则基于webassembly的安全检测工具禁止该api

2的执行,并跳转至api

2的后续代码进行执行。假设,api

2的后续代码即为api

3,则基于webassembly的安全检测工具会再次根据预先获得的用户x对浏览器数据的访问权限信息,判定用户x是否具有对该api的调用权限,本示例中,用户x具有该权限,则api

3调用操作被放行,api

3通过浏览器支持层进行api的调用。网页代码继续执行,上述检测过程将持续至所有网页代码执行完毕。
52.由上述过程可见,与api

2调用有关的操作均无法得到执行,从而避免了浏览器cookie信息被违规访问或获取。
53.可见,通过本实施例,在浏览器中设置浏览器安全执行环境,并通过该安全执行环境在网页代码被执行时,基于预先获取的该网页代码的提供方对浏览器数据的访问权限信息,对网页代码的数据访问操作进行检测,若检测到超出访问权限的操作则进行滤除。由此,不管网页代码如何编写,不管采用何种方式编写,也不管是否经过加密,只要代码中的访问操作可被识别,均可对其进行是否超出访问权限的检测和处理。并且,该安全执行环境设置于浏览器中,可有效针对web前端数据,进一步避免网页代码故意或非故意地访问非权限内数据,提高了web前端数据的安全性,提升了用户的数据安全体验。
54.本实施例的数据安全处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、pad等)和pc机等。
55.实施例二
56.参照图3a,示出了根据本技术实施例二的一种数据安全处理方法的步骤流程图。
57.本实施例的数据安全处理方法包括以下步骤:
58.步骤s202:使用网页代码解析工具和基于类汇编语言的网页代码安全检测工具,
封装构建基于类汇编语言的浏览器安全执行环境。
59.其中,网页代码解析工具用于对网页代码进行解析,一般可实现为js引擎类的工具。网页代码解析工具对网页代码的处理可包括解析和执行,在执行过程中,网页代码安全检测工具会对网页代码进行其对应的操作是否超出网页代码提供方对浏览器数据的访问权限的检测,若不超出,则放行;若超出则滤除不执行。
60.基于类汇编语言的网页代码安全检测工具可基于类汇编语言设置用于安全检测的代码,实现相应功能。本实施例中主要实现为针对api调用操作和针对页面渲染操作的检测和滤除。
61.基于此,可构建一个浏览器安全执行环境,其中封装有网页代码解析工具和网页代码安全检测工具,以对网页代码在解析和执行的过程中,进行有效的安全检测和处理。
62.在一个具体示例中,浏览器安全执行环境可实现为quickjs webassembly安全检测工具的形式。其中,quickjs是一个轻量级的js引擎,可对javascript网页代码进行解析和执行,在执行过程中,基于webassembly的安全检测工具对网页代码的执行进行检测,若检测到超出网页代码提供方的访问权限的访问操作,则不执行。
63.quickjs可针对javascript代码进行解析,但在某些情况下,网页代码可能为其它语言如c语言或c 语言编写的代码,此种情况下,需要将非javascript语言转换为javascript语言。为此,在一种可行方式中,可以将quickjs与quickjs

emscripten与基于webassembly的安全检测工具一起封装,基于此,在浏览器安全执行环境中至少包括quickjs quickjs

emscripten webassembly安全检测工具,由此形成一个安全的运行容器,在该运行窗口中运行网页代码。
64.需要说明的是,该浏览器安全执行环境可以一次构建长期使用,无需每次进行网页代码处理均构建。并且,在后续如果有新的安全需求,可基于原安全执行环境进行相应修改处理后继续使用。
65.步骤s204:获取待执行的网页代码、所述网页代码的提供方对浏览器数据的访问权限信息。
66.本实施例中,对浏览器数据的访问权限信息包括以下至少之一:用于指示提供方可使用的浏览器api接口的信息、用于指示提供方可进行浏览器页面渲染的节点层级的信息。除基本的api接口如bom api接口外,其它api接口是否可由某一提供方访问需要根据该提供方所使用的服务预先确定,不同的提供方可能具有不同的访问权限。浏览器页面渲染基于dom节点进行,提供方可对哪个层级的节点进行渲染可根据提供方信息,包括但不限于提供方级别信息、提供方所使用的服务的信息等来确定。
67.api接口访问和页面渲染是网页代码可执行的主要功能,也是保障浏览器数据安全的重要因素,为网页代码的提供方设置针对这两项的访问权限信息,既不会对网页代码的提供方的网页代码产生较大影响,又可有效保障浏览器的web前端数据安全。访问权限信息的具体设置可参考前述实施例一中的相关描述,在此不再赘述。
68.步骤s206:在预先构建的浏览器安全执行环境中,对网页代码进行解析和执行。
69.本步骤中,使用步骤s202构建的浏览器安全执行环境,通过其中的解析引擎对网页代码进行解析和执行。
70.如前所述,在一种可选方案中,浏览器安全执行环境可以为基于webassembly标准
的类汇编语言的浏览器安全执行环境。
71.webassembly的核心是一种面向多应用场景的虚拟指令架构,能够嵌入到不同的应用环境,支持高性能的web应用。作为虚拟机和执行环境,webassembly允许加载的页面作为本机编译代码运行,从而改善web性能和功耗。由此,webassembly可以实现接近原生速度的性能、优化加载时间。因webassembly标准为基于类汇编语言的标准,使用其构建安全执行环境可有效实现前端代码和后端代码的代码隔离,保证环境的安全性;又因webassembly标准较为成熟,将其应用于浏览器安全环境的构架还可大大节约方案实现成本,节省研发费用。
72.但不限于此,其它基于与webassembly标准类似的标准构建的浏览器安全执行环境同样可适用本技术实施例的方案。
73.步骤s208:通过浏览器安全执行环境,在网页代码执行过程中,检测并滤除超出对浏览器数据的访问权限信息所指示的权限的访问操作。
74.在一种可行方式中,若对浏览器数据的访问权限信息包括用于指示所述提供方可使用的浏览器api接口的信息,则本步骤可实现为:在网页代码执行过程中,若检测到浏览器api接口调用信息,则判断待调用的api接口是否在所述提供方可使用的浏览器api接口的信息所指示的api接口中;若否,则禁止浏览器api接口调用信息对应的调用操作的执行;若是,则放进该浏览器api接口调用信息对应的调用操作的执行。通过本方式,可对浏览器api调用操作进行有效检测,避免非法api访问,以及避免通过api接口非法获取web前端数据,从api调用操作层面保障web前端数据的安全性。
75.在另一种可行方式中,若对浏览器数据的访问权限信息包括用于指示所述提供方可进行浏览器页面渲染的节点层级的信息,则本步骤可实现为:在网页代码执行过程中,若检测到待执行的页面渲染操作,则获取该页面渲染操作所渲染的渲染节点的信息;根据该渲染节点的信息判断该渲染节点的层级是否超出所述提供方可进行浏览器页面渲染的节点层级;若超出,则禁止该页面渲染操作的执行;若未超出,则放行该页面渲染操作。
76.因网页的渲染是基于网页代码构建的dom树进行,被渲染的网页元素均会对应到dom树的节点上,dom树通常自根节点至叶子节点具有多个层级。经渲染引擎进行渲染解析后的代码中,存在相应的待渲染的节点信息,基于该节点信息即可确定该节点在dom树中的层级。dom树中的高层级节点(至少包括根节点)的渲染权限不适于向网页代码提供方开放。
77.基于此,在一个示例中,假设用户x即网页代码提供方的网页代码中涉及改变所有界面图片颜色的代码,该操作会导致界面显示异常,因此,该权限对大部分网页代码提供方不会开放。又因该操作的实现会涉及较高层级的网页dom树节点如根节点等,则基于此,针对大部分网页代码提供方的页面渲染操作的权限都会限制对某些高层级节点的访问,以避免出现因网页代码提供方原因导致的网页异常。通过本方式,可对页面渲染操作进行有效检测,避免异常渲染操作,进而保障web前端数据的安全性。
78.但不限于此,在实际应用中,还可以根据实际需要,为网页代码提供方设置其它访问操作权限,以实现更为灵活的web前端数据安全保障。
79.步骤s210:通过至少封装有api功能单元和dom功能单元的浏览器支持层,执行放行的浏览器数据访问权限信息所指示的权限内的访问操作。
80.若网页代码中的访问操作在用户的访问权限内,则会被放行,交由浏览器支持层
执行相应的访问操作,如api调用或节点渲染等。
81.在一种可行方式中,浏览器支持层中可以封装有独立的api功能单元和dom功能单元,以分别实现对应的api调用功能和节点渲染功能。通过这种功能单元的隔离,可以实现相应网页代码实现功能的隔离,避免数据混合或交叉导致的安全问题。
82.基于此,可选地,可以预先将预设类型的api程序和dom构建程序分别生成为独立的api功能单元和dom功能单元;其中,api功能单元用于接收从浏览器安全执行环境中发出的浏览器api接口调用信息并执行浏览器api接口调用信息所指示的调用操作,dom功能单元用于接收从浏览器安全执行环境中发出的页面渲染操作的信息,基于页面渲染操作的信息构建或确定待渲染的dom节点并基于构建或确定的dom节点执行页面渲染操作的信息所指示的页面渲染操作;将api功能单元和dom功能单元封装入浏览器支持层中。
83.在一个示例中,例如,可将bom api的相关程序封装为api功能单元,将shadow dom的相关程序封装为dom功能单元,再将这两个功能单元封装入浏览器支持层中。在浏览器支持层接收到基于webassembly安全检测工具放行的访问操作时,若该访问操作为api调用操作,则交由api功能单元执行,若该访问操作为节点渲染操作,交由dom功能单元执行。
84.以下,以一个涉及电子商务的场景为示例,对上述过程进行示例性说明,如图3b所示。
85.为便于说明本示例的方案,首先介绍本示例所使用的浏览器架构如下,该浏览器包括:应用层、前端框架层、容器层和支持层。浏览器的应用层接收网页代码,并在接收到该网页代码后,会根据其提供方的信息如标识信息获取该提供方对浏览器数据的访问操作权限信息。浏览器的前端框架层中设置有渲染引擎,该前端框架层从应用层接收网页代码并通过渲染引擎对其进行用于网页渲染的解析,然后,将解析结果发送给容器层。浏览器的容器层中即设置有本技术实施例中的浏览器安全执行环境,在该环境中设置有解析引擎如js引擎及浏览器安全检测工具如通过webassembly实现的检测工具。一方面,该容器层通过解析引擎对网页代码进行解析和执行;另一方面,该容器层还接收前端框架层发送来的渲染解析的结果。进而,js引擎的解析结果和渲染解析的结果都交由安全检测工具进行检测,若检测出超出网页代码提供方的访问权限的访问操作(如调用超出权限的api或渲染dom树根节点等)则滤除或停止代码的执行。而对于未检测出网页代码提供方的访问权限的访问操作,则交由浏览器支持层执行。
86.在上述过程中,浏览器根据网页代码提供方的标识信息从第三方获取该提供方对浏览器数据的访问权限信息,该第三方具有针对网页代码进行浏览器数据的访问权限的设置功能,其具体设置方式可参考前述实施例一中的相关描述,在此不再赘述。
87.基于上述浏览器架构和设置,本示例如图3b中所示,某isv(独立软件开发商,指从事软件的开发、生产、销售和服务的企业)基于某电子商务服务开放平台可提供的服务,使用该平台提供的开发工具构建满足自身所需的电子商务服务,并基于此编写相应的网页代码,这些网页代码会以应用包的形式作为最终产物输出。本示例中,设定该应用包中携带有isv的用户信息。该应用包会发送至该isv指定的电子设备,交由设备浏览器进行处理。浏览器应用层在接收到该应用包后,会根据其中的isv的用户信息从第三方获取isv对浏览器数据的访问操作权限信息。进而,浏览器应用层获取应用包中的多个网页代码,一方面通过渲染引擎进行渲染解析,另一方面发送至包括js引擎在内的浏览器安全执行环境,通过js引
擎进行解析并执行。不管是渲染引擎解析出的代码还是js引擎解析出的代码,均在基于webassembly标准构建的浏览器安全执行环境中执行安全检测,本示例中该安全执行环境示例为安全沙箱sandbox开放容器,根据该isv对浏览器数据的访问操作权限信息,对渲染引擎和js引擎解析出的执行中的代码,通过基于webassembly的安全检测工具进行安全检测,以确定待执行的代码对应的访问操作是否符合所述权限信息所指示的权限。若符合,则放行,交由浏览器支持层进行处理。若不符合,则滤除该访问操作不再执行,本示例中,设定在滤除该访问操作不再执行后跳至该访问操作后续的代码继续执行和检测,直至所有网页代码执行完成。
88.可见,通过本实施例,在浏览器中设置浏览器安全执行环境,并通过该安全执行环境在网页代码被执行时,基于预先获取的该网页代码的提供方对浏览器数据的访问权限信息,对网页代码的数据访问操作进行检测,若检测到超出访问权限的操作则进行滤除。由此,不管网页代码如何编写,不管采用何种方式编写,也不管是否经过加密,只要代码中的访问操作可被识别,均可对其进行是否超出访问权限的检测和处理。并且,该安全执行环境设置于浏览器中,可有效针对web前端数据,进一步避免网页代码故意或非故意地访问非权限内数据,提高了web前端数据的安全性,提升了用户的数据安全体验。
89.本实施例的数据安全处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、pad等)和pc机等。
90.实施例三
91.参照图4a,示出了根据本技术实施例三的一种浏览器系统的结构框图。
92.本实施例的浏览器系统包括:应用层302、前端框架层304、容器层306和支持层308。
93.其中:
94.前端框架层304中至少设置有渲染引擎,该前端框架层304用于从应用层302接收待执行的网页代码,并通过渲染引擎对网页代码进行用于网页渲染的解析,并将渲染解析的结果并发送给容器层306。
95.容器层306中至少设置有浏览器安全执行环境,该浏览器安全执行环境中设置有解析引擎和浏览器安全检测工具,容器层306用于通过浏览器安全执行环境中的解析引擎对网页代码进行代码解析和代码执行,并且,通过浏览器安全检测工具对执行过程中的代码和前端框架层304发送来的渲染解析的结果进行检测,以检测并滤除超出所述网页代码的提供方对浏览器数据的访问权限信息所指示的权限的访问操作。
96.支持层308中具有浏览器运行所需的软硬件资源,该支持层层308用于执行容器层306发送来的访问操作。
97.在一种可行方式中,浏览器安全检测工具为基于webassembly标准的类汇编语言的安全检测工具。
98.可选地,所述访问操作包括浏览器api接口调用和页面渲染操作。
99.在另一种可行方式中,浏览器支持层中设置有独立的api功能单元和dom功能单元;其中,api功能单元用于接收从浏览器安全执行环境中发出的浏览器api接口调用操作,dom功能单元用于接收从浏览器安全执行环境中发出的页面渲染操作,基于页面渲染操作构建或确定待渲染的dom节点并基于构建或确定的dom节点执行页面渲染操作。
100.以下,以一个具体示例对上述系统进行示例性说明,如图4b所示。
101.图4b中,应用层接收外部开发的网页代码或者基于网页代码构建的应用包,网页代码中可以包含javascript代码、css样式代码等。此外,本示例,应用层还获取网页代码提供方的信息如标识信息,并根据该标识信息获取该提供方对浏览器数据的访问权限信息。
102.应用层接收到网页代码后,将其向下传递,一方面交由前端框架层进行渲染解析,另一方面,将其与该提供方的浏览器数据访问权限信息一起交给容器层进行处理。
103.本示例中,前端框架层中至少设置有视图解析器和渲染引擎。其中,视图解析器用于进行视图解析,以在浏览器界面中生成真正的视图;渲染引擎用于对网页代码进行渲染解析,以渲染浏览器页面。本示例中,将视图解析器实现为“react”,渲染引擎实现为“react

quickjs

render”。但本领域技术人员应当明了的是,其它视图解析器和渲染引擎同样适用于本实施例的方案。
104.本示例中的容器层实现为设置有解析引擎和基于webassembly的安全检测工具封装而成的浏览器安全执行环境容器。此外,为了对非javascript的代码进行处理,该容器还可以封装入针对非解释型语言的编译工具,以将其它语言转换为解释型语言。本示例中示意为“quickjs

emscripten”,可将c/c 语言的代码转换为javascript语言的代码。不管是直接输入的javascript网页代码还是经转换后生成的javascript网页代码,都由解析引擎,本示例中实现为js引擎“quickjs”进行代码解析和执行。此外,由前端框架层进行渲染解析后的结果也会输入该容器。输入的渲染解析的结果和执行中的网页代码均会经基于webassembly的安全检测工具进行安全检测。该安全检测工具基于传入的该提供方对浏览器数据的访问权限信息,判断执行中的代码和发送来的渲染解析结果(也为代码)中,是否存在不符合该提供方对浏览器数据的访问权限信息所指示的权限的操作。本示例中,主要为api调用操作和页面渲染操作。如果存在,则禁止这些操作的执行。也即,基于webaassembly安全检测工具 quickjs的浏览器安全执行环境,可以安全地执行javascript代码,该安全执行环境会为javascript代码的执行提供可控的jspai,包含部分浏览器bom api、网络请求api,以及可控的渲染节点。
105.对于放行的访问操作,将交由支持层中相应的功能单元执行。本示例中,支持层包括bom api功能单元和shadow dom功能单元。bom api功能单元中封装有bom api相关程序,本示例中,还封装有network部分能力。shadow dom功能单元中封装有对样式、dom使用shadow dom的相关程序。由此,实现了api调用和dom渲染的隔离。
106.可见,通过本实施例的浏览器系统,可以通过浏览器安全执行环境对网页代码进行安全检测,充分控制外部开发的代码,保证web前端数据的安全性。并且,可以对网页样式输出和dom渲染进行控制,在保证web前端数据的安全性的同时,还可避免网页异常的发生。由此,在不影响浏览器性能的前提下,实现了执行环境的安全隔离,保证浏览器数据安全。
107.实施例四
108.参照图5,示出了根据本技术实施例四的一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
109.如图5所示,该电子设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
110.其中:
111.处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
112.通信接口404,用于与其它电子设备或服务器进行通信。
113.处理器402,用于执行程序410,具体可以执行上述校验码生成方法实施例中的相关步骤。
114.具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
115.处理器402可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
116.存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。
117.程序410具体可以用于使得处理器402执行以下操作:获取待执行的网页代码、所述网页代码提供方对浏览器数据的访问权限信息;在预先构建的浏览器安全执行环境中,对所述网页代码进行解析和执行;并且,通过所述浏览器安全执行环境,在所述网页代码执行过程中,检测并滤除超出所述浏览器数据访问权限信息所指示的权限的访问操作。
118.在一种可选的实施方式中,所述浏览器数据访问权限信息包括以下至少之一:用于指示所述提供方可使用的浏览器api接口的信息、用于指示所述提供方可进行浏览器页面渲染的节点层级的信息。
119.在一种可选的实施方式中,若所述对浏览器数据的访问权限信息包括用于指示所述提供方可使用的浏览器api接口的信息,程序410还用于使得处理器402在所述网页代码执行过程中,检测并滤除超出所述浏览器数据访问权限信息所指示的权限的访问操作时:在所述网页代码执行过程中,若检测到浏览器api接口调用信息,则判断待调用的api接口是否在所述提供方可使用的浏览器api接口的信息所指示的api接口中;若否,则禁止所述浏览器api接口调用信息对应的调用操作的执行。
120.在一种可选的实施方式中,若所述对浏览器数据的访问权限信息包括用于指示所述提供方可进行浏览器页面渲染的节点层级的信息,程序410还用于使得处理器402在所述网页代码执行过程中,检测并滤除超出所述浏览器数据访问权限信息所指示的权限的访问操作时:在所述网页代码执行过程中,若检测到待执行的页面渲染操作,则获取所述页面渲染操作所渲染的渲染节点的信息;根据所述渲染节点的信息判断所述渲染节点的层级是否超出所述提供方可进行浏览器页面渲染的节点层级;若超出,则禁止所述页面渲染操作的执行。
121.在一种可选的实施方式中,程序410还用于使得处理器402使用网页代码解析工具和基于类汇编语言的网页代码安全检测工具,封装构建基于类汇编语言的浏览器安全执行环境。
122.在一种可选的实施方式中,程序410还用于使得处理器402通过至少封装有api功能单元和dom功能单元的浏览器支持层,执行所述对浏览器数据的访问权限信息所指示的权限内的访问操作;其中,所述api功能单元用于接收从所述浏览器安全执行环境中发出的浏览器api接口调用信息并执行所述浏览器api接口调用信息所指示的调用操作,所述dom功能单元用于接收从所述浏览器安全执行环境中发出的页面渲染操作的信息,基于所述页
面渲染操作的信息构建或确定待渲染的dom节点并基于构建或确定的dom节点执行所述页面渲染操作的信息所指示的页面渲染操作;将所述api功能单元和所述dom功能单元封装入浏览器支持层中。
123.在一种可选的实施方式中,程序410还用于使得处理器402将预设类型的api程序和dom构建程序分别生成为独立的api功能单元和dom功能单元。
124.在一种可选的实施方式中,所述浏览器安全执行环境为基于webassembly标准的类汇编语言的浏览器安全执行环境。
125.程序410中各步骤的具体实现可以参见上述数据安全处理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
126.通过本实施例的电子设备,在浏览器中设置浏览器安全执行环境,并通过该安全执行环境在网页代码被执行时,基于预先获取的该网页代码提供方对浏览器数据的访问权限信息,对网页代码的数据访问操作进行检测,若检测到超出访问权限的操作则进行滤除。由此,不管网页代码如何编写,不管采用何种方式编写,也不管是否经过加密,只要代码中的访问操作可被识别,均可对其进行是否超出访问权限的检测和处理。并且,该安全执行环境设置于浏览器中,可有效针对web前端数据,进一步避免网页代码故意或非故意地访问非权限内数据,提高了web前端数据的安全性,提升了用户的数据安全体验。
127.本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一数据安全处理方法对应的操作。
128.需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
129.上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据安全处理方法。此外,当通用计算机访问用于实现在此示出的数据安全处理方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据安全处理方法的专用计算机。
130.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
131.以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技
术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献