CN111381903A - 程序运行方法、装置、设备及介质 - Google Patents
程序运行方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111381903A CN111381903A CN202010193412.7A CN202010193412A CN111381903A CN 111381903 A CN111381903 A CN 111381903A CN 202010193412 A CN202010193412 A CN 202010193412A CN 111381903 A CN111381903 A CN 111381903A
- Authority
- CN
- China
- Prior art keywords
- sub
- module
- function module
- secure channel
- data processing
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本说明书一个或多个实施例提供了一种程序运行方法、装置、设备及介质。在一种实施例中,一种程序运行方法包括:用于运行目标应用的主进程接收模块启动指令;其中,模块启动指令用于启动目标应用中的目标功能模块;主进程响应于模块启动指令,获取目标功能模块对应的预设进程标识;主进程根据预设进程标识,创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道;主进程通过第一安全通道向第一子进程发送模块启动命令,以使第一子进程运行目标功能模块。
Description
技术领域
本说明书一个或多个实施例涉及程序安全技术领域,尤其涉及一种程序运行方法、装置、设备及介质。
背景技术
随着应用程序(Application,APP)的快速发展,APP内的功能模块的数量越来越多,并且类型也越来越丰富。
由于现有的电子设备的操作系统的设计,在运行APP时,只能实现APP之间的安全隔离,无法对APP内部的不同功能模块进行安全隔离,导致无法对APP的不同功能模块之间进行安全风险阻断,进而降低了APP的整体安全性。
发明内容
本说明书一个或多个实施例提供了一种程序运行方法、装置、设备及介质,能够在运行APP时,对APP内部的不同功能模块进行安全隔离。
本说明书一个或多个实施例提供的技术方案如下:
第一方面,提供了一种程序运行方法,应用于运行目标应用的主进程,该方法包括:
接收模块启动指令;其中,模块启动指令用于启动目标应用中的目标功能模块;
响应于模块启动指令,获取目标功能模块对应的预设进程标识;
根据预设进程标识,创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道;
通过第一安全通道向第一子进程发送模块启动命令,以使第一子进程运行目标功能模块。
第二方面,提供了一种程序运行装置,应用于运行目标应用的主进程,该装置包括:
第一接收模块,用于接收模块启动指令;其中,模块启动指令用于启动目标应用中的目标功能模块;
第一获取模块,用于响应于模块启动指令,获取目标功能模块对应的预设进程标识;
进程创建模块,用于根据预设进程标识,创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道;
第一发送模块,用于通过第一安全通道向第一子进程发送模块启动命令,以使第一子进程运行目标功能模块。
第三方面,提供了一种程序运行设备,该设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如第一方面所述的程序运行方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面所述的程序运行方法。
根据上述的本说明书一个或多个实施例,能够在运行目标应用的主进程接收到用于启动目标应用中的目标功能模块的模块启动指令后,获取目标功能模块对应的预设进程标识,然后根据预设进程标识创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道,进而通过第一安全通道向第一子进程发送模块启动命令并利用第一子进程运行目标功能模块,由于在不同的独立进程中分别运行目标应用和目标功能模块,并且不同进程之间需要通过安全通道进行通信,因此,能够以子进程运行功能模块、通过安全通道在子进程与主进程之间进行通信的方式,实现对APP内部的不同功能模块的安全隔离,从而能够对APP的不同功能模块之间进行安全风险阻断,提高了APP的整体安全性。
附图说明
为了更清楚地说明本说明书一个或多个实施例的技术方案,下面将对本说明书一个或多个实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例提供的程序运行系统的系统架构图;
图2是本说明书一个实施例提供的程序运行方法的流程示意图;
图3为本说明书一个实施例提供的内存分配的示意图;
图4是本说明书一个实施例提供的进程结构的结构示意图;
图5是本说明书一个实施例提供的数据处理架构的结构示意图;
图6是本说明书一个实施例提供的程序运行装置的结构示意图;
图7是本说明书一个实施例提供的程序运行设备的硬件结构示意图。
具体实施方式
下面将详细描述本说明书的各个方面的特征和示例性实施例,为了使本说明书的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本说明书进行进一步详细描述。应理解,此处所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。对于本领域技术人员来说,本说明书可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本说明书的示例来提供对本说明书更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在移动安全领域,安全隔离是非常重要的一种安全手段,可以主动防御并阻断潜在的安全攻击,防止攻击发生。
由于电子设备的操作系统的设计,在运行APP时,一个APP本身被作为一个主体,即一个APP的全部功能模块均运行于一个进程中,因此,只能实现APP之间的安全隔离,无法对APP再进行更细粒度的安全隔离,也就无法对APP内部的不同功能模块进行安全隔离,导致无法对APP的不同功能模块之间进行安全风险阻断,进而降低了APP的整体安全性。
因此,为了解决现有技术问题,本说明书一个实施例提供了一种程序运行系统。
图1示出了本说明书一个实施例提供的程序运行系统的系统架构图。如图1所示,该程序运行系统应用于电子设备内,电子设备安装有应用程序,应用程序运行于主进程内,应用程序的应用界面内显示有功能模块对应的功能模块控件,当用户点击功能模块控件时,主进程则会接收到用于启动该功能模块的模块启动指令,然后,主进程可以基于该功能模块的预设进程标识,创建该功能模块对应的子进程以及子程序与主程序之间的安全通道,并且通过安全通道向子进程发送模块启动命令,以使子进程响应于该模块启动命令运行该功能模块,并且使电子设备显示该功能模块对应的功能界面。
由于图1所示的程序运行系统能够在不同的独立进程中分别运行应用查询和功能模块,并且能够通过安全通道实现子进程与主进程之间的通信,因此,能够实现对APP内部的不同功能模块的安全隔离,从而能够对APP的不同功能模块之间进行安全风险阻断,提高了APP的整体安全性。
为了实现上述的程序运行系统,本说明书一个或多个实施例提供了一种程序运行方法、装置、设备及介质。下面首先对本说明书所提供的程序运行方法进行介绍。
图2示出了本说明书一个实施例提供的程序运行方法的流程示意图。
在本说明书一些实施例中,图2所示的方法可以由运行服务器或电子设备中的目标应用的主进程执行,例如,图1所示的程序运行系统中的主进程。在本说明书中,电子设备可以包括但不限于手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、车载终端以及可穿戴设备等。服务器可以是一种高性能的电子计算器,用于存储和处理数据。目标应用可以为电子设备中已经安装的任意APP。
如图2所示,该程序运行方法可以包括:
S110、接收模块启动指令;其中,模块启动指令用于启动目标应用中的目标功能模块;
S120、响应于模块启动指令,获取目标功能模块对应的预设进程标识;
S130、根据预设进程标识,创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道;
S140、通过第一安全通道向第一子进程发送模块启动命令,以使第一子进程运行目标功能模块。
在本说明书实施例中,能够在运行目标应用的主进程接收到用于启动目标应用中的目标功能模块的模块启动指令后,获取目标功能模块对应的预设进程标识,然后根据预设进程标识创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道,进而通过第一安全通道向第一子进程发送模块启动命令并利用第一子进程运行目标功能模块,由于在不同的独立进程中分别运行目标应用和目标功能模块,并且不同进程之间需要通过安全通道进行通信,因此,能够以子进程运行功能模块、通过安全通道在子进程与主进程之间进行通信的方式,实现对APP内部的不同功能模块的安全隔离,从而能够对APP的不同功能模块之间进行安全风险阻断,提高了APP的整体安全性。
在本说明书一些实施例中,目标功能模块可以为目标应用中的任意内置功能模块。
在本说明书另一个实施例中,目标功能模块还可以仅为目标应用的提供方以外的其他提供方所提供的内置功能模块。
在本说明书又一些实施例中,目标功能模块还可以为目标应用中的安全风险等级较高的内置功能模块。
在这些实施例中,在S110之前,该程序运行方法还可以包括:
获取目标应用的历史漏洞数据;
根据历史漏洞数据,确定目标应用中的每个内置功能模块对应的漏洞数量;
将漏洞数量满足预设条件的内置功能模块,作为目标功能模块。
具体地,可以每隔预定时间段,获取目标应用在该预定时间段内的历史漏洞数据,该历史漏洞数据可以包括目标应用出现的历史漏洞数量和每个历史漏洞所对应的内置功能模块,然后可以基于历史漏洞数据,确定目标应用中的每个内置功能模块对应的漏洞数量,并且将漏洞数量满足预设条件的内置功能模块作为目标功能模块。
其中,预设条件可以包括漏洞数量与预定时间段的比值(即漏洞频率)大于或等于预设比值阈值、漏洞数量大于或等于预设数量阈值、漏洞数量为全部内置功能模块的前N个中的至少一个,其中,N为正整数。
在这些实施例中,可选地,目标功能模块可以包括小程序功能模块、h5页面功能模块和浏览器功能模块中的至少一种。
其中,浏览器功能模块可以用于浏览生活号中的内容。
由此,本说明书实施例可以将目标应用内的安全风险较高的内置功能模块在单独的一个子进程中运行,实现对安全风险较高的内置功能模块的安全隔离。
在本说明书一些实施例的S110中,在主进程运行目标应用的过程中,当用户点击在目标应用的应用界面中所显示的目标功能模块对应的功能模块控件(目标功能模块的入口)时,主进程便可以接收到用于启动目标应用中的目标功能模块的模块启动指令。
在本说明书一些实施例中,每个目标功能模块的模块属性中都可以预先设置有唯一的预设进程标识,该预设进程标识用于使主进程确定目标功能模块运行于哪个子进程中。
因此,在本说明书一些实施例的S120中,当主进程接收到模块启动指令之后,可以模块启动指令,从目标功能模块的模块属性中,获取该目标功能模块对应的预设进程标识。
在本说明书一些实施例的S130中,当主进程创建好具有预设进程标识的第一子进程后,主进程会基于该第一子进程创建该第一子进程与主进程之间的第一安全通道。
其中,第一安全通道的第一通道标识与预设进程标识相关联,以便主进程基于预设进程标识即可以确定与第一子进程进行通信时需要通过第一安全通道,以及基于第一通道标识即可以确定所接受的信息来自第一子进程。
在本说明书实施例中,可选地,第一安全通道可以为进程间通信(Inter-ProcessCommunication,IPC)通道。由于IPC通道速度快,且连接双方可以以此通道进行加密数据的通信,因此,能够进一步加强主进程与子进程、以及各个子进程之间的安全隔离。
同时,当主进程创建好具有预设进程标识的第一子进程后,电子设备的操作系统即会为该第一子进程分配一个内存空间。
在一些实施例中,在第一子进程被创建后,操作系统可以主动为第一子进程分配一个内存空间。在另一些实施例中,在第一子进程被创建后,第一子进程可以向操作系统请求内存分配,操作系统应该请求为第一子进程分配一个内存空间。
在这些实施例中,分配给第一子进程的内存空间可以是预设大小的内存空间。
在本说明书一些实施例中,分配给第一子进程的内存空间可以与主进程的内存空间不相同,即第一子进程的内存空间与主进程的内存空间分别独立的内存空间。而分配给第一子进程的内存空间可以与主进程的其他子进程的内存空间相同。
由此,可以实现主进程与子进程之间的资源隔离,进一步提高主进程与子进程之间的安全风险阻断的可靠性。
在这些实施例中,第一子进程对应的内存空间和主进程对应的内存空间可以分别对应不同的堆,或者,第一子进程对应的内存空间和主进程对应的内存空间可以分别对应同一个堆中的不同区块。
具体地,第一子进程对应的内存空间和主进程对应的内存空间可以分别采用不同的堆。即针对主进程分配主堆,由主堆加载运行时环境,针对第一子进程分配子堆,由子堆来执行目标功能模块的代码。
图3示出了本说明书一个实施例提供的内存分配的示意图。如3示出了“双堆”的内存分配方式,即针对主进程分配主堆,针对主进程中的每个子进程均分配子堆,主堆对应第一内存空间,子堆对应第二内存空间,第一内存空间与第二内存空间为相对独立的内存空间。
除了上述采用“双堆”的方式之外,还可以采用其他方式来区分第一内存空间和第二内存空间。例如,第一内存空间和第二内存空间可以分别为同一个堆中的不同区块,即只使用一个堆,但通过同一个堆中的不同区块来区分主进程和子进程的内存空间。
在本说明书另一些实施例中,分配给第一子进程的内存空间可以与主进程的内存空间和主进程的其他子进程的内存空间均不相同。
由此,可以实现主进程与子进程之间、以及子进程与子进程之间的资源隔离,进一步提高主进程与子进程之间、以及子进程与子进程之间的安全风险阻断的可靠性。
在这些实施例中,第一子进程对应的内存空间和主进程对应的内存空间可以分别对应不同的堆,或者,第一子进程对应的内存空间和主进程对应的内存空间可以分别对应同一个堆中的不同区块。并且,第一子进程对应的内存空间和第二子进程对应的内存空间可以分别对应不同的堆,或者,第一子进程对应的内存空间和第二子进程对应的内存空间可以分别对应同一个堆中的不同区块。其中,第二子进程为主进程创建的除第一子进程以外的其它子进程。
具体地,第一子进程对应的内存空间、第二子进程对应的内存空间、主进程对应的内存空间可以分别采用不同的堆。此时,可以为每一个堆分配一个相对独立的内存空间。另外,还可以通过同一个堆中的不同区块分别不同的相对独立的内存空间,即只使用一个堆,但通过同一个堆中的不同区块来区分主进程和各个子进程的内存空间。
图4示出了本说明书一个实施例提供的进程结构的结构示意图。如图4所示,APP主进程与APP子进程1和APP子进程2可以分别基于该APP子进程与APP主进程之间独立的IPC通道进行通信。APP主进程包括Javascript(JS)接口单元、网络单元、输入输出(I/O)单元和隐私单元,APP子进程1和APP子进程2分别包括用户界面(User Interface,UI)单元、业务逻辑单元、资源单元、存储单元、cookie和用户身份证明(User Identification,UID)。
其中,若APP子进程1和APP子进程2的UID相同,则APP子进程1和APP子进程2共享资源单元、存储单元、cookie,即APP子进程1和APP子进程2的资源单元、存储单元、cookie不隔离。若APP子进程1和APP子进程2的UID不相同,则APP子进程1和APP子进程2的资源单元、存储单元、cookie隔离,此时,即使某个APP子进程被入侵,其它APP子进程仍然可以保证不受影响。
进一步地,APP主进程也可以包括UI单元、业务逻辑单元、资源单元、存储单元、cookie和UID。若APP主进程与APP子进程1和APP子进程2的UID相同,则APP主进程、APP子进程1和APP子进程2共享资源单元、存储单元、cookie,即APP主进程、APP子进程1和APP子进程2的资源单元、存储单元、cookie不隔离。若APP主进程与APP子进程1和APP子进程2的UID不相同,则APP主进程、APP子进程1和APP子进程2的资源单元、存储单元、cookie隔离,此时,即使某个APP子进程被入侵,APP主进程仍然可以保证不受影响。
在本说明书一些实施例中,在S140之后,该程序运行方法还可以包括:
通过第一安全通道接收第一子进程发送的资源访问请求;
响应于资源访问请求,获取第一子进程的预设访问权限;
在预设访问权限包括资源访问请求对应的资源访问权限的情况下,通过第一安全通道向第一子进程发送资源访问请求对应的资源,以使第一子进程基于资源运行目标功能模块。
具体地,第一子进程在进行资源访问时,需要通过第一安全通道向主进程发送资源访问请求,主进程可以对第一子进程的访问权限进行判断,在预设访问权限包括资源访问请求对应的资源访问权限的情况下,通过第一安全通道向第一子进程发送资源访问请求对应的资源,从而使每个子进程只能获取自己合法的资源,不允许获取其它子进程的资源,进一步提高APP的运行安全性。
在这些实施例中,可选地,获取第一子进程的预设访问权限的具体方法可以包括:获取第一子进程对应的预设进程标识;获取预设进程标识对应的预设访问权限。
具体地,主进程可以获取第一子进程对应的预设进程标识,并且根据预设进程标识,获取第一子进程对应的预设访问权限,进而对第一子进程的访问权限进行判断。
在一些实施例中,主进程可以通过获取与传输资源访问请求的第一通道标识相关联的预设进程标识的方式,获取第一子进程对应的预设进程标识。在另一些实施例中,主进程可以通过资源访问请求所携带的预设进程标识的方式,获取第一子进程对应的预设进程标识。
在本说明书一些实施例中,在S140之后,该程序运行方法还可以包括:
通过第一安全通道接收第一子进程发送的数据处理请求;
解析数据处理请求,得到数据处理请求中的业务数据;
通过第二安全通道将业务数据发送至第三子进程,以使第三子进程对业务数据进行数据处理,得到数据处理结果;其中,第三子进程为主进程创建的用于进行数据处理的子进程,第二安全通道为主程序与第三子进程之间的安全通道;
将第三子进程通过第二安全通道反馈的数据处理结果,通过第一安全通道发送至第一子进程,以使第一子进程基于数据处理结果运行目标功能模块。
具体地,在主进程通过第一安全通道接收到第一子进程发送的数据处理请求后,可以首先解析数据处理请求,得到待处理的业务数据,然后通过第二安全通道将业务数据发送至第三子进程。第三子进程接收到业务数据后,可以对业务数据进行数据处理,得到数据处理结果,然后将数据处理结果通过第二安全通道反馈给主进程。主进程在接收到数据处理结果后,可以通过第一安全通道将数据处理结果转发给第一子进程,以使第一子进程基于数据处理结果运行目标功能模块。
由此,可以通过用于进行数据处理的第三子进程进行业务数据处理,进一步提高第一子进程的安全性。
在一些实施例中,一个第三子进程可以对应一个目标功能模块对应的第一子进程。在另一些实施例中,一个第三子进程可以对应多个目标功能模块对应的第一子进程,在此不做限定。
可选地,业务数据包括页面数据,数据处理包括渲染处理,数据处理结果包括页面渲染结果。
图5示出了本说明书一个实施例提供的数据处理架构的结构示意图。如图5所示,当第一子进程需要显示目标功能模块的功能页面时,需要对功能页面对应的页面数据进行页面渲染处理,此时,第一子进程可以向主进程发送包括页面数据的数据处理请求,主进程在接收到数据处理请求后,可以解析数据处理请求,得到页面数据,由于对页面数据需要进行页面渲染处理,则可以将页面数据发送给用于进行渲染处理的第三子进程,第三子进程接收到页面数据以后,对页面数据进行渲染处理,得到页面渲染结果,并将页面渲染结果反馈给主进程,主进程将页面渲染结果转发给第一子进程,第一子进程可以基于页面渲染结果显示页面数据对于的功能页面。
图6示出了本说明书一个实施例提供的程序运行装置的结构示意图。
在本说明书一些实施例中,图6所示的装置可以设置于服务器或电子设备中,并且用于运行服务器或电子设备中的目标应用的主进程,例如,图6所示的程序运行系统中的主进程。在本说明书中,电子设备可以包括但不限于手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、车载终端以及可穿戴设备等。服务器可以是一种高性能的电子计算器,用于存储和处理数据。目标应用可以为电子设备中已经安装的任意APP。
如图6所示,该程序运行装置200可以包括:
第一接收模块210,用于接收模块启动指令;其中,模块启动指令用于启动目标应用中的目标功能模块;
第一获取模块220,用于响应于模块启动指令,获取目标功能模块对应的预设进程标识;
进程创建模块230,用于根据预设进程标识,创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道;
第一发送模块240,用于通过第一安全通道向第一子进程发送模块启动命令,以使第一子进程运行目标功能模块。
在本说明书实施例中,能够在运行目标应用的主进程接收到用于启动目标应用中的目标功能模块的模块启动指令后,获取目标功能模块对应的预设进程标识,然后根据预设进程标识创建目标功能模块对应的第一子进程以及第一子程序与主程序之间的第一安全通道,进而通过第一安全通道向第一子进程发送模块启动命令并利用第一子进程运行目标功能模块,由于在不同的独立进程中分别运行目标应用和目标功能模块,并且不同进程之间需要通过安全通道进行通信,因此,能够以子进程运行功能模块、通过安全通道在子进程与主进程之间进行通信的方式,实现对APP内部的不同功能模块的安全隔离,从而能够对APP的不同功能模块之间进行安全风险阻断,提高了APP的整体安全性。
在本说明书一些实施例中,第一子进程对应的内存空间和主进程对应的内存空间分别对应不同的堆,或者,第一子进程对应的内存空间和主进程对应的内存空间分别对应同一个堆中的不同区块。
在本说明书一些实施例中,第一子进程对应的内存空间和第二子进程对应的内存空间分别对应不同的堆,或者,第一子进程对应的内存空间和第二子进程对应的内存空间分别对应同一个堆中的不同区块;
其中,第二子进程为主进程创建的除第一子进程以外的其它子进程。
在本说明书一些实施例中,该程序运行装置200还可以包括:
第二接收模块,用于通过第一安全通道接收第一子进程发送的数据处理请求;
请求解析模块,用于解析数据处理请求,得到数据处理请求中的业务数据;
第二发送模块,用于通过第二安全通道将业务数据发送至第三子进程,以使第三子进程对业务数据进行数据处理,得到数据处理结果;其中,第三子进程为主进程创建的用于进行数据处理的子进程,第二安全通道为主程序与第三子进程之间的安全通道;
第三发送模块,用于将第三子进程通过第二安全通道反馈的数据处理结果,通过第一安全通道发送至第一子进程,以使第一子进程基于数据处理结果运行目标功能模块。
在本说明书一些实施例中,业务数据包括页面数据,数据处理包括渲染处理,数据处理结果包括页面渲染结果。
在本说明书一些实施例中,该程序运行装置200还可以包括:
第三接收模块,用于通过第一安全通道接收第一子进程发送的资源访问请求;
第二获取模块,用于响应于资源访问请求,获取第一子进程的预设访问权限;
第四发送模块,用于在预设访问权限包括资源访问请求对应的资源访问权限的情况下,通过第一安全通道向第一子进程发送资源访问请求对应的资源,以使第一子进程基于资源运行目标功能模块。
在本说明书一些实施例中,该第二获取模块可以具体用于:
获取第一子进程对应的预设进程标识;
获取预设进程标识对应的预设访问权限。
在本说明书一些实施例中,目标功能模块可以包括小程序功能模块、h5页面功能模块和浏览器功能模块中的至少一种。
在本说明书一些实施例中,第一安全通道为进程间通信IPC通道。
需要说明的是,本实施例所述的装置能够实现图2至图5所示的方法实施例中的各个过程和效果相似,并且原理相似,为避免重复,这里不再赘述。
图7示出了本说明书一个实施例提供的程序运行设备的硬件结构示意图。本说明书实施例所述的程序运行设备可以为服务器或者终端设备。如图7所示,程序运行设备300包括输入设备301、输入接口302、中央处理器303、存储器304、输出接口305、以及输出设备306。其中,输入接口302、中央处理器303、存储器304、以及输出接口305通过总线310相互连接,输入设备301和输出设备306分别通过输入接口302和输出接口305与总线310连接,进而与程序运行设备300的其他组件连接。
具体地,输入设备301接收来自外部的输入信息,并通过输入接口302将输入信息传送到中央处理器303;中央处理器303基于存储器304中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器304中,然后通过输出接口305将输出信息传送到输出设备306;输出设备306将输出信息输出到程序运行设备300的外部供用户使用。
也就是说,图7所示的程序运行设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现本说明书实施例描述的程序运行方法和装置。
本说明书实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本说明书实施例提供的程序运行方法。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本说明书的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述,仅为本说明书的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本说明书的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本说明书的保护范围之内。
Claims (20)
1.一种程序运行方法,应用于运行目标应用的主进程,所述方法包括:
接收模块启动指令;其中,所述模块启动指令用于启动所述目标应用中的目标功能模块;
响应于所述模块启动指令,获取所述目标功能模块对应的预设进程标识;
根据所述预设进程标识,创建所述目标功能模块对应的第一子进程以及所述第一子程序与所述主程序之间的第一安全通道;
通过所述第一安全通道向所述第一子进程发送模块启动命令,以使所述第一子进程运行所述目标功能模块。
2.根据权利要求1所述的方法,其中,所述第一子进程对应的内存空间和所述主进程对应的内存空间分别对应不同的堆,或者,所述第一子进程对应的内存空间和所述主进程对应的内存空间分别对应同一个堆中的不同区块。
3.根据权利要求1或2所述的方法,其中,所述第一子进程对应的内存空间和第二子进程对应的内存空间分别对应不同的堆,或者,所述第一子进程对应的内存空间和第二子进程对应的内存空间分别对应同一个堆中的不同区块;
其中,所述第二子进程为所述主进程创建的除所述第一子进程以外的其它子进程。
4.根据权利要求1所述的方法,其中,所述通过所述第一安全通道向所述第一子进程发送模块启动命令之后,所述方法还包括:
通过所述第一安全通道接收所述第一子进程发送的数据处理请求;
解析所述数据处理请求,得到所述数据处理请求中的业务数据;
通过第二安全通道将所述业务数据发送至第三子进程,以使所述第三子进程对所述业务数据进行数据处理,得到数据处理结果;其中,所述第三子进程为所述主进程创建的用于进行数据处理的子进程,所述第二安全通道为所述主程序与所述第三子进程之间的安全通道;
将所述第三子进程通过所述第二安全通道反馈的所述数据处理结果,通过所述第一安全通道发送至所述第一子进程,以使所述第一子进程基于所述数据处理结果运行所述目标功能模块。
5.根据权利要求4所述的方法,其中,所述业务数据包括页面数据,所述数据处理包括渲染处理,所述数据处理结果包括页面渲染结果。
6.根据权利要求1所述的方法,其中,所述通过所述第一安全通道向所述第一子进程发送模块启动命令之后,所述方法还包括:
通过所述第一安全通道接收所述第一子进程发送的资源访问请求;
响应于所述资源访问请求,获取所述第一子进程的预设访问权限;
在所述预设访问权限包括所述资源访问请求对应的资源访问权限的情况下,通过所述第一安全通道向所述第一子进程发送所述资源访问请求对应的资源,以使所述第一子进程基于所述资源运行所述目标功能模块。
7.根据权利要求6所述的方法,所述获取所述第一子进程的预设访问权限,包括:
获取所述第一子进程对应的所述预设进程标识;
获取所述预设进程标识对应的所述预设访问权限。
8.根据权利要求1所述的方法,其中,所述目标功能模块包括小程序功能模块、h5页面功能模块和浏览器功能模块中的至少一种。
9.根据权利要求1所述的方法,其中,所述第一安全通道为进程间通信IPC通道。
10.一种程序运行装置,应用于运行目标应用的主进程,所述装置包括:
第一接收模块,用于接收模块启动指令;其中,所述模块启动指令用于启动所述目标应用中的目标功能模块;
第一获取模块,用于响应于所述模块启动指令,获取所述目标功能模块对应的预设进程标识;
进程创建模块,用于根据所述预设进程标识,创建所述目标功能模块对应的第一子进程以及所述第一子程序与所述主程序之间的第一安全通道;
第一发送模块,用于通过所述第一安全通道向所述第一子进程发送模块启动命令,以使所述第一子进程运行所述目标功能模块。
11.根据权利要求10所述的装置,其中,所述第一子进程对应的内存空间和所述主进程对应的内存空间分别对应不同的堆,或者,所述第一子进程对应的内存空间和所述主进程对应的内存空间分别对应同一个堆中的不同区块。
12.根据权利要求10或11所述的装置,其中,所述第一子进程对应的内存空间和第二子进程对应的内存空间分别对应不同的堆,或者,所述第一子进程对应的内存空间和第二子进程对应的内存空间分别对应同一个堆中的不同区块;
其中,所述第二子进程为所述主进程创建的除所述第一子进程以外的其它子进程。
13.根据权利要求10所述的装置,其中,所述装置还包括:
第二接收模块,用于通过所述第一安全通道接收所述第一子进程发送的数据处理请求;
请求解析模块,用于解析所述数据处理请求,得到所述数据处理请求中的业务数据;
第二发送模块,用于通过第二安全通道将所述业务数据发送至第三子进程,以使所述第三子进程对所述业务数据进行数据处理,得到数据处理结果;其中,所述第三子进程为所述主进程创建的用于进行数据处理的子进程,所述第二安全通道为所述主程序与所述第三子进程之间的安全通道;
第三发送模块,用于将所述第三子进程通过所述第二安全通道反馈的所述数据处理结果,通过所述第一安全通道发送至所述第一子进程,以使所述第一子进程基于所述数据处理结果运行所述目标功能模块。
14.根据权利要求13所述的装置,其中,所述业务数据包括页面数据,所述数据处理包括渲染处理,所述数据处理结果包括页面渲染结果。
15.根据权利要求10所述的装置,其中,所述装置还包括:
第三接收模块,用于通过所述第一安全通道接收所述第一子进程发送的资源访问请求;
第二获取模块,用于响应于所述资源访问请求,获取所述第一子进程的预设访问权限;
第四发送模块,用于在所述预设访问权限包括所述资源访问请求对应的资源访问权限的情况下,通过所述第一安全通道向所述第一子进程发送所述资源访问请求对应的资源,以使所述第一子进程基于所述资源运行所述目标功能模块。
16.根据权利要求15所述的装置,所述第二获取模块具体用于:
获取所述第一子进程对应的所述预设进程标识;
获取所述预设进程标识对应的所述预设访问权限。
17.根据权利要求10所述的装置,其中,所述目标功能模块包括小程序功能模块、h5页面功能模块和浏览器功能模块中的至少一种。
18.根据权利要求10所述的装置,其中,所述第一安全通道为进程间通信IPC通道。
19.一种程序运行设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-9任意一项所述的程序运行方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-9任意一项所述的程序运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010193412.7A CN111381903B (zh) | 2020-03-18 | 2020-03-18 | 程序运行方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010193412.7A CN111381903B (zh) | 2020-03-18 | 2020-03-18 | 程序运行方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381903A true CN111381903A (zh) | 2020-07-07 |
CN111381903B CN111381903B (zh) | 2023-05-26 |
Family
ID=71222729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010193412.7A Active CN111381903B (zh) | 2020-03-18 | 2020-03-18 | 程序运行方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381903B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782300A (zh) * | 2020-07-08 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、设备及系统 |
CN111782380A (zh) * | 2020-08-06 | 2020-10-16 | Oppo(重庆)智能科技有限公司 | 应用运行控制方法、装置、电子装置及存储介质 |
CN112182623A (zh) * | 2020-10-13 | 2021-01-05 | 支付宝(杭州)信息技术有限公司 | 保护用户隐私的方法以及装置 |
CN112737760A (zh) * | 2020-12-22 | 2021-04-30 | 航天信息股份有限公司 | 一种基于管道通信技术进行双工数据通信的方法及系统 |
CN112948824A (zh) * | 2021-03-31 | 2021-06-11 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的程序通信方法、装置及设备 |
CN114077368A (zh) * | 2022-01-19 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 车载小程序运行方法、装置、计算机设备及存储介质 |
CN115129469A (zh) * | 2022-06-23 | 2022-09-30 | 北京新唐思创教育科技有限公司 | 跨进程通信方法、装置、设备及存储介质 |
CN117076160A (zh) * | 2023-10-16 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 组件调用方法、装置、设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181950A1 (en) * | 2012-12-26 | 2014-06-26 | International Business Machines Corporation | Performance Optimization in a Secured Computing Environment |
CN104036166A (zh) * | 2014-06-11 | 2014-09-10 | 中国人民解放军国防科学技术大学 | 支持强制访问控制的用户提权方法 |
CN104580190A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇虎科技有限公司 | 安全浏览器的实现方法和安全浏览器装置 |
CN104580189A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇虎科技有限公司 | 一种安全通信系统 |
US9070211B1 (en) * | 2012-10-18 | 2015-06-30 | Google Inc. | Webview tag for a sandboxed multiprocess browser |
CN105184153A (zh) * | 2015-08-26 | 2015-12-23 | 北京元心科技有限公司 | 智能终端及其基于多级容器的应用程序运行方法 |
US20160147993A1 (en) * | 2014-09-29 | 2016-05-26 | Vmware, Inc. | Securing secret data embedded in code against compromised interrupt and exception handlers |
CN108334404A (zh) * | 2017-01-20 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 应用程序的运行方法和装置 |
CN108959062A (zh) * | 2017-05-22 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 网页元素获取方法及装置 |
WO2019140274A1 (en) * | 2018-01-12 | 2019-07-18 | Virsec Systems, Inc. | Defending against speculative execution exploits |
CN110442422A (zh) * | 2019-07-03 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 主动响应式可信Python虚拟机及其执行的方法 |
CN110851802A (zh) * | 2019-11-06 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 权限控制方法、装置、设备及计算机可读介质 |
-
2020
- 2020-03-18 CN CN202010193412.7A patent/CN111381903B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9070211B1 (en) * | 2012-10-18 | 2015-06-30 | Google Inc. | Webview tag for a sandboxed multiprocess browser |
US20140181950A1 (en) * | 2012-12-26 | 2014-06-26 | International Business Machines Corporation | Performance Optimization in a Secured Computing Environment |
CN104036166A (zh) * | 2014-06-11 | 2014-09-10 | 中国人民解放军国防科学技术大学 | 支持强制访问控制的用户提权方法 |
US20160147993A1 (en) * | 2014-09-29 | 2016-05-26 | Vmware, Inc. | Securing secret data embedded in code against compromised interrupt and exception handlers |
CN104580190A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇虎科技有限公司 | 安全浏览器的实现方法和安全浏览器装置 |
CN104580189A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇虎科技有限公司 | 一种安全通信系统 |
CN105184153A (zh) * | 2015-08-26 | 2015-12-23 | 北京元心科技有限公司 | 智能终端及其基于多级容器的应用程序运行方法 |
CN108334404A (zh) * | 2017-01-20 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 应用程序的运行方法和装置 |
CN108959062A (zh) * | 2017-05-22 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 网页元素获取方法及装置 |
WO2019140274A1 (en) * | 2018-01-12 | 2019-07-18 | Virsec Systems, Inc. | Defending against speculative execution exploits |
CN110442422A (zh) * | 2019-07-03 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 主动响应式可信Python虚拟机及其执行的方法 |
CN110851802A (zh) * | 2019-11-06 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 权限控制方法、装置、设备及计算机可读介质 |
Non-Patent Citations (1)
Title |
---|
邹志成;高有行;戴祖峰;: "一种网络漏洞检测系统的设计与实现", 计算机应用研究 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379248B2 (en) | 2020-07-08 | 2022-07-05 | Alipay (Hangzhou) Information Technology Co., Ltd. | Data processing method, apparatus, device, and system |
CN111782300A (zh) * | 2020-07-08 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、设备及系统 |
CN111782380A (zh) * | 2020-08-06 | 2020-10-16 | Oppo(重庆)智能科技有限公司 | 应用运行控制方法、装置、电子装置及存储介质 |
CN111782380B (zh) * | 2020-08-06 | 2023-03-17 | Oppo(重庆)智能科技有限公司 | 应用运行控制方法、装置、电子装置及存储介质 |
CN112182623A (zh) * | 2020-10-13 | 2021-01-05 | 支付宝(杭州)信息技术有限公司 | 保护用户隐私的方法以及装置 |
CN112737760B (zh) * | 2020-12-22 | 2023-01-10 | 航天信息股份有限公司 | 一种基于管道通信技术进行双工数据通信的方法及系统 |
CN112737760A (zh) * | 2020-12-22 | 2021-04-30 | 航天信息股份有限公司 | 一种基于管道通信技术进行双工数据通信的方法及系统 |
CN112948824B (zh) * | 2021-03-31 | 2022-04-26 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的程序通信方法、装置及设备 |
CN112948824A (zh) * | 2021-03-31 | 2021-06-11 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的程序通信方法、装置及设备 |
CN114077368A (zh) * | 2022-01-19 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 车载小程序运行方法、装置、计算机设备及存储介质 |
CN115129469A (zh) * | 2022-06-23 | 2022-09-30 | 北京新唐思创教育科技有限公司 | 跨进程通信方法、装置、设备及存储介质 |
CN117076160A (zh) * | 2023-10-16 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 组件调用方法、装置、设备和存储介质 |
CN117076160B (zh) * | 2023-10-16 | 2024-01-26 | 腾讯科技(深圳)有限公司 | 组件调用方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111381903B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111381903B (zh) | 程序运行方法、装置、设备及介质 | |
EP4087343A1 (en) | Information reporting method, apparatus and device, and storage medium | |
CN112099979B (zh) | 一种访问控制方法、装置、计算机设备和存储介质 | |
CN111740992B (zh) | 网站安全漏洞检测方法、装置、介质及电子设备 | |
US20220043898A1 (en) | Methods and apparatuses for acquiring information | |
CN106776917B (zh) | 一种获取资源文件的方法和装置 | |
CN111866885A (zh) | 验证信息共享方法、装置及电子设备 | |
CN106534280B (zh) | 数据分享方法及装置 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN115237589A (zh) | 一种基于sr-iov的虚拟化方法、装置和设备 | |
US10025646B2 (en) | Naming of nodes in NET framework | |
US12093820B2 (en) | Automatic generation of an API interface description | |
EP3879795A1 (en) | Method and apparatus for acquiring information, device, medium and computer program product | |
CN112306685A (zh) | 任务隔离方法、装置、电子设备及计算机可读介质 | |
EP2928224B1 (en) | Management server, data processing method, and program | |
CN116186649A (zh) | 跨系统访问方法、装置、计算机设备及存储介质 | |
CN111612450B (zh) | 应用程序支付渠道的检测方法、装置、终端设备及介质 | |
CN114302207A (zh) | 一种弹幕显示方法、装置、系统、设备及存储介质 | |
CN114489698A (zh) | 应用程序安装方法和装置 | |
CN113395240A (zh) | 数据获取方法、装置、设备及介质 | |
CN113742714A (zh) | 微服务间访问管理方法、设备、装置及存储介质 | |
CN112000313A (zh) | 请求响应方法、装置、设备及存储介质 | |
CN110430533A (zh) | 移动终端定位方法、装置、系统、计算机设备和存储介质 | |
CN113467863A (zh) | 信息显示方法、装置、设备及存储介质 | |
CN110737513A (zh) | 一种信息处理方法、系统和电子设备 |
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 |