CN108289080A - 一种访问文件***的方法、装置和*** - Google Patents

一种访问文件***的方法、装置和*** Download PDF

Info

Publication number
CN108289080A
CN108289080A CN201710014428.5A CN201710014428A CN108289080A CN 108289080 A CN108289080 A CN 108289080A CN 201710014428 A CN201710014428 A CN 201710014428A CN 108289080 A CN108289080 A CN 108289080A
Authority
CN
China
Prior art keywords
access request
file system
data manipulation
node
user program
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
Application number
CN201710014428.5A
Other languages
English (en)
Other versions
CN108289080B (zh
Inventor
田力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710014428.5A priority Critical patent/CN108289080B/zh
Publication of CN108289080A publication Critical patent/CN108289080A/zh
Application granted granted Critical
Publication of CN108289080B publication Critical patent/CN108289080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种访问文件***的方法。该方法包括:在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合所述受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下;响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境;响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求;接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。此外,本申请实施例还公开了一种访问文件***的装置和***。

Description

一种访问文件***的方法、装置和***
技术领域
本申请涉及网络通信技术领域,特别涉及一种访问文件***的方法、装置和***。
背景技术
目前,分布式文件***的出现,使得大数据技术的实现和普及成为可能。在分布式文件***中,通过协调多台物理机的存储资源,大量数据能够被存储和访问,从而海量数据能够实现被处理和分析。具体地,用户程序可以向分布式文件***发起访问请求,分布式文件***则按照用户程序的访问请求进行数据文件的读、写等操作,从而使得用户程序能够通过分布式文件***实现数据的存取和分析。
由于用户程序可以由用户自行修改程序代码,因此,用户程序可能包含有恶意代码。在现有技术中,为了保证分布式文件***能够不受恶意代码的威胁,分布式文件***对用户程序的访问权限进行了限制。具体地,在分布式文件***中具有控制节点和存储节点。其中,存储节点用于存储分布式文件***中的数据文件。对于分布式文件***中的每一个文件,在控制节点中每个文件为不同用户设置了不同访问权限。在分布式文件***中,控制节点接收到用户程序对文件的访问请求时,判断所述访问请求是否符合所述文件为所述用户程序对应的用户设置的访问权限,若不符合则拒绝所述访问请求,若符合则将所述访问请求对应的数据的存储地址返回给所述用户程序,以便所述用户程序根据返回的存储地址对存储节点中的数据文件进行数据操作。
但是,由于分布式文件***允许用户程序进行网络访问,而用户程序对分布式文件***的访问权限仅仅是由控制节点根据用户程序的访问请求进行控制,用户程序实际上可以直接对分布式文件***中的磁盘、网络等资源进行操作,因此,分布式文件***实际上依然会受到用户程序中恶意代码的威胁,从而容易造成用户的隐私数据泄露。例如,包含恶意代码的用户程序可以不向控制节点发送访问请求,而在不受访问权限限制的情况下直接对存储节点中的数据文件进行数据操作,从而造成其他用户的数据被恶意泄露或恶意修改。
发明内容
本申请实施例所要解决的技术问题是,提供一种访问文件***的方法、装置和***,以使得在保证用户程序能够通过分布式文件***进行数据存取和分析的情况下避免用户程序直接对分布式文件***中的资源进行访问,从而避免分布式文件***中的用户数据被恶意泄露或恶意修改。
第一方面,本申请实施例提供了一种访问文件***的方法,包括:
在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合所述受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下;
响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境;
响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求;
接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。
可选的,所述受限环境为子进程,所述子进程由父进程创建,所述子进程通过所述父进程进行网络访问;
所述访问请求是先由所述子进程向所述父进程发送、再由所述父进程向所述文件***发送的;
所述响应结果是先由所述父进程从所述文件***接收、再由子进程从所述父进程接收的。
可选的,所述响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求,包括:
响应于所述访问请求符合所述网络访问权限,识别所述访问请求对应的数据操作的类型;
通过所述类型对应的请求处理程序向所述文件***发送所述访问请求。
可选的,所述文件***包括控制节点和存储节点;
所述方法还包括:
在向所述文件***发送所述访问请求之后,接收所述控制节点针对所述访问请求返回的存储地址;
按照所述存储地址向所述存储节点发起数据操作指令;
其中,所述存储地址对应的存储空间用于存储所述访问请求所要访问的数据文件,所述数据操作指令用于触发所述存储节点执行所述访问请求对应的数据操作,所述响应结果是所述存储节点对所述数据操作的执行结果。
可选的,所述存储地址包括多个存储节点上的地址,所述访问请求对应的数据操作为读取操作;
所述按照所述存储地址向所述存储节点发起数据操作指令,具体为:按照所述多个存储节点上的地址,分别向所述多个存储节点发起数据操作指令;
所述响应结果是由所述多个存储节点分别返回的。
可选的,所述存储地址包括多个存储节点上的地址,所述访问请求对应的数据操作为写入操作或创建操作;
所述按照所述存储地址向所述存储节点发起数据操作指令,包括:
在所述多个存储节点中选取一个目标存储节点;
按照所述存储地址向所述目标存储节点发起数据操作指令,以便所述目标存储节点向所述存储地址对应的其他存储节点转发所述数据操作指令;
所述响应结果是所述目标存储节点根据所述目标存储节点对所述数据操作指令的执行结果和所述其他存储节点针对所述数据操作指令返回给所述目标存储节点的执行结果而返回的。
可选的,所述访问请求对应的数据操作的类型为打开操作、创建操作、读取操作、写入操作或删除操作。
第二方面,本申请实施例提供了一种访问文件***的装置,包括:
验证单元,用于在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合所述受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下;
拒绝单元,用于响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境;
第一发送单元,用于响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求;
第一接收单元,用于接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。
可选的,所述受限环境为子进程,所述子进程由父进程创建,所述子进程通过所述父进程进行网络访问;
所述访问请求是先由所述子进程向所述父进程发送、再由所述父进程向所述文件***发送的;
所述响应结果是先由所述父进程从所述文件***接收、再由子进程从所述父进程接收的。
可选的,所述第一发送单元,具体用于:
响应于所述访问请求符合所述网络访问权限,识别所述访问请求对应的数据操作的类型;
通过所述类型对应的请求处理程序向所述文件***发送所述访问请求。
可选的,所述文件***包括控制节点和存储节点;
所述装置还包括:
第二接收单元,在向所述文件***发送所述访问请求之后,接收所述控制节点针对所述访问请求返回的存储地址;
第二发送单元,用于按照所述存储地址向所述存储节点发起数据操作指令;
其中,所述存储地址对应的存储空间用于存储所述访问请求所要访问的数据文件,所述数据操作指令用于触发所述存储节点执行所述访问请求对应的数据操作,所述响应结果是所述存储节点对所述数据操作的执行结果。
可选的,所述存储地址包括多个存储节点上的地址;所述访问请求对应的数据操作为读取操作;
所述第二发送单元,具体用于:按照所述多个存储节点上的地址,分别向所述多个存储节点发起数据操作指令;
所述响应结果是由所述多个存储节点分别返回的。
可选的,所述存储地址包括多个存储节点上的地址;所述访问请求对应的数据操作为写入操作或创建操作;
所述第二发送单元,具体用于:
在所述多个存储节点中选取一个目标存储节点;
按照所述存储地址向所述目标存储节点发起数据操作指令,以便所述目标存储节点向所述存储地址对应的其他存储节点转发所述数据操作指令;
所述响应结果是所述目标存储节点根据所述目标存储节点对所述数据操作指令的执行结果和所述其他存储节点针对所述数据操作指令返回给所述目标存储节点的执行结果而返回的。
可选的,所述访问请求对应的数据操作的类型为打开操作、创建操作、读操作、写操作或删除操作。
第三方面,本申请实施例提供了一种访问文件***的***,包括用户程序运行***和文件***;所述用户程序运行***配置有第二方面任意一种实施方式所述的装置。
与现有技术相比,本申请具有以下优点:
根据本申请实施例的技术方案,在用户程序运行***中将用户程序设置并运行于受限环境,当用户程序要对文件***发起访问请求时,通过受限环境可以验证该访问请求是否符合受限环境提供的网络访问权限,若不符合则拒绝将该访问请求向受限环境之外的网络环境发送,若符合则将该访问请求向受限环境之外的文件***,以使得用户程序能够得到文件***针对该访问请求返回的响应结果,从而用户程序就能够通过分布式文件***进行数据存取和分析。由此可见,由于用户程序只能向受限环境之外的网络环境发送符合受限环境提供的网络访问权限的访问请求,用户程序无法直接对分布式文件***中的磁盘、网络等资源进行操作,因此,分布式文件***就可以不再受到用户程序中恶意代码的威胁,从而用户数据被恶意泄露或被恶意修改得以避免。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一应用场景所涉及的网络***框架示意图;
图2为本申请实施例中一种访问文件***的方法的流程示意图;
图3为本申请实施例中一种父子进程实现所述受限环境的示例示意图;
图4为本申请实施例中一种用户程序运行***对存储节点进行数据写入操作的示例示意图;
图5为本申请实施例中一种访问文件***的装置的结构示意图;
图6为本申请实施例中一种访问文件***的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请的发明人经过研究发现,现有技术中,分布式文件***会受到用户程序中恶意代码的威胁,因此,分布式文件***的用户数据容易被泄露或恶意修改。而现有技术之所以存在这样的技术问题,原因在于,用户程序对分布式文件***的访问权限是由分布式文件***中的控制节点进行控制,而用户程序能够直接对分布式文件***发起网络访问,因此,用户程序实际上可以直接对分布式文件***中的磁盘、网络等资源进行操作,这就使得包含恶意代码的用户程序能够直接操作分布式文件***而无需权限验证。例如,包含恶意代码的用户程序可以不向控制节点发送访问请求而直接对存储节点中的数据文件进行数据操作,这种情况下恶意代码的用户程序对存储节点的数据操作可以绕开控制节点的访问权限验证,从而造成其他用户的数据被恶意泄露或恶意修改。
为了解决上述问题,在本申请实施例中,在用户程序运行***中将用户程序设置并运行于受限环境,当用户程序要对文件***发起访问请求时该访问请求需要通过受限环境的网络访问权限验证才能发送到受限环境之外的网络环境。由于用户程序只能向受限环境之外的网络环境发送通过受限环境的网络访问权限验证的访问请求,因此,用户程序无法绕开访问权限验证而直接对分布式文件***中的磁盘、网络等资源进行操作,因此,分布式文件***就可以不再受到用户程序中恶意代码的威胁,从而避免了用户数据被恶意泄露或被恶意修改。
举例说明,本申请实施例例如可以应用到如图1所示的网络***中。在该网络***中,用户程序运行***101将用户程序102运行于一个受限环境103中。在受限环境103下,响应于用户程序101生成对所述文件***104的访问请求,用户程序运行***101验证所述访问请求是否符合受限环境103提供的网络访问权限,所述用户程序运行在所述受限环境下。响应于所述访问请求不符合所述网络访问权限,用户程序运行***101拒绝将所述访问请求发送到所述受限环境103之外的网络环境。响应于所述访问请求符合所述网络访问权限,用户程序运行***101向所述文件***104发送所述访问请求。然后,用户程序运行***101接收所述文件***104针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序101。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
参见图2,示出了本申请实施例中一种访问文件***的方法的流程示意图。在本实施例中,所述方法例如可以应用于用户程序运行***,即所述方法被所述用户程序运行***执行。所述方法例如具体可以包括以下步骤:
步骤201、在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下。
在用户程序运行***中,用户程序设置并运行在受限环境中,受限环境为用户程序访问受限环境之外的网络环境设置了网络访问权限。当用户程序需要访问受限环境之外的网络环境时,对于用户程序生成的访问请求,用户程序运行***判断该访问请求是否符合受限环境所设置的网络访问权限,从而通过判断结果确定允许用户程序对受限环境之外的网络环境发起访问。可见,在本实施例中,用户程序是由用户程序运行***来验证网络访问权限的,因此,用户程序不能直接访问网络,而必须通过用户程序运行***的权限验证之后才能向网络发起访问。
具体地,受限环境可以根据用户程序的网络访问权限为用户程序设置有限的网络访问接口,用户程序仅能通过受限环境提供的网络访问接口访问受限环境之外的网络环境。其中,每个网络访问接口用于提供一类用户程序具有访问权限的网络访问操作,如网络访问操作、磁盘IO操作等。例如,在受限环境中可以设置有管道文件***(PipeFileSystem)程序,步骤201具体可以是管道文件***程序执行的,也即,若用户程序生成对所述文件***的访问请求,管道文件***程序验证所述访问请求是否符合受限环境提供的网络访问权限。
步骤202、响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境。
可以理解的是,若用户程序触发的访问请求不符合受限环境提供的网络访问权限,则用户程序不具有向受限环境之外的网络环境发起该访问请求的权限,用户程序运行***可以拒绝将该访问请求发送到受限环境之外的网络环境。
步骤203、响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求。
可以理解的是,若用户程序触发的访问请求符合受限环境提供的网络访问权限,则用户程序具有向受限环境之外的网络环境发起该访问请求的权限,用户程序运行***可以允许该访问请求发送到受限环境之外的网络环境,也即,用户程序运行***可以将该访问请求发送给文件***。
在本实施例中,用户程序触发的访问请求例如可以是对应于多种不同类型的数据操作。具体地,所述访问请求对应的数据操作的类型例如可以为打开操作、创建操作、读操作、写操作或删除操作。其中,打开操作,即Open操作,用于指示文件***打开访问连接;创建操作,即Create操作,用于指示文件***创建数据文件;读取操作,即Read操作,用于指示文件***读取已存储的数据并返回;写入操作,即Write操作,用于指示文件***写入数据;删除操作,即Delete操作,用于指示文件***删除已储存的数据。
在本实施例的一些实施方式中,在用户程序运行***上可以为不同的数据操作的类型配置不同的请求处理程序,通过数据操作的类型对应的请求处理程序处理所述数据操作对应的访问请求。具体地,步骤203例如可以具体包括:响应于所述访问请求符合所述网络访问权限,识别所述访问请求对应的数据操作的类型;通过所述类型对应的请求处理程序向所述文件***发送所述访问请求。
步骤204、接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。
具体实现时,文件***接收到所述访问请求时,可以响应所述访问请求而执行所述访问请求对应的数据操作,并将执行结果作为响应结果返回给用户程序运行***,以便用户程序运行***将该响应结果返回给用户程序。这样,用户程序就能够通过文件***进行数据的存取和分析。
在本实施例的一些实施方式中,父子进程通信技术可以被用于在所述用户程序运行***中实现将用户程序运行于受限环境。其中,所述受限环境例如可以是一个子进程,所述子进程可以是由父进程创建的,所述子进程可以通过所述父进程进行网络访问;所述访问请求例如可以是先由所述子进程向所述父进程发送、再由所述父进程向所述文件***发送的;所述响应结果例如可以是先由所述父进程从所述文件***接收、再由子进程从所述父进程接收的。
具体地,图3示出了一种父子进程实现所述受限环境的示例。在该示例中,父进程与子进程之间可以通过基于通道(英文:Channel)的远程过程调用协议(英文:RemoteProcedure Call Protocol,简称RPC)交互,基于Channel的RPC也称为CRpc。其中,RPC分为AsyncCall和SyncCall,分别用于实现父子进程之间的异步调用和同步调用。在子进程中运行有用户程序、管道文件***程序(即图3中的“PipeFileSystem”)和CRpc客户端程序(即图3中的“CRpcClient”)。在父进程中运行有CRpc服务端程序(即图3中的“CRpcServer”)和请求处理程序(即图3中的“Request Handler”)。
在步骤1中:在子进程中,用户程序生成的访问请求发送到PipeFileSystem进行网络访问权限验证。
在步骤2中:在子进程中,若该访问请求符合子进程提供的网络访问权限,PipeFileSystem对该访问请求进行封装并将封装后的访问请求(即图3中的“FsRequest”)发送到CRpcClient;通过子进程中CRpcClient与父进程中CRpcServer之间的交互,FsRequest从子进程被传送到父进程;在父进程中,通过识别FsRequest对应的数据操作的类型,CRpcServer向该类型对应的Request Handler发送FsRequest。
在步骤3中:Request Handler对FsRequest进行解析,得到用户程序生成的访问请求,通过分布式文件***的访问接口(即图3中的“panguAPI”)向分布式文件***发送该访问请求。
在步骤4中:当分布式文件***针对该访问请求向用户程序运行***返回响应结果时,在父进程中,Request Handler通过PanguAPI接收该响应结果。
在步骤5中:Request Handler对该响应结果进行封装并将封装后的响应结果(即图3中的“FsRosponse”)发送给CRpcServer;通过子进程中CRpcClient与父进程中CRpcServer之间的交互,FsRosponse从父进程被传送到子进程;在子进程中,CRpcClient将FsRosponse发送给PipeFileSystem。
在步骤6中:PipeFileSystem从FsRosponse中解析出分布式文件***返回的响应结果并发送给用户程序。
可以理解的是,Pipe文件***程序对访问请求的访问权限验证,具体实现方式可以在于,Pipe文件***程序提供对应于子进程提供的网络访问权限的访问接口并通过访问接口控制用户程序的访问请求是否可以封装并发送到CRpc客户端程序。当一个访问请求发送到Pipe文件***程序时,Pipe文件***判断该访问请求是否符合自身提供的访问接口,若符合则对该访问请求进行封装并发送到CRpc客户端程序,若不符合则可以丢弃该访问请求。
可以理解的是,在父子进程通信技术中,子进程的网络访问权限受到严格限制,子进程与外界网络环境的交互都需要通过父进程的处理,这样就使得运行在子进程中的用户程序在网络隔离环境下使用文件***。此外,父进程还可以控制子进程的生命周期。具体地,父进程可以对一个或多个子进程进行创建、监控和销毁,还可以控制每个子进程的安全相关的白名单,如network的白名单、***调用的白名单、namespace的白名单等。
可以理解的是,本实施例中提及的文件***例如可以是分布式文件***。在分布式文件***中包括控制节点和存储节点。在用户程序运行***访问分布式文件***时,用户程序运行***向控制节点发送访问请求,控制节点向用户程序运行***返回访问请求所要访问的数据文件的存储地址,然后,用户程序运行***再按照该存储地址对存储节点进行相应的数据操作。具体地,在一些实施方式中,本实施例例如还可以包括:在向所述文件***发送所述访问请求之后,接收所述控制节点针对所述访问请求返回的存储地址;按照所述存储地址向所述存储节点发起数据操作指令;其中,所述存储地址对应的存储空间用于存储所述访问请求所要访问的数据文件,所述数据操作指令用于触发所述存储节点执行所述访问请求对应的数据操作,所述响应结果是所述存储节点对所述数据操作的执行结果。
需要说明的是,在控制节点针对访问请求返回多个存储节点上的地址时,若访问请求对应的数据操作的类型不同,用户程序运行***向存储节点发起数据操作指令的方式可以不同。
例如,在本实施例的一些实施方式中,若所述访问请求对应的数据操作为读取操作,则用户程序运行***可以分别向各个存储节点发起数据读取指令,各个存储节点分别将各自保存的相应数据返回给用户程序运行***作为响应结果。具体地,发起数据操作指令的方式例如可以是,按照所述多个存储节点上的地址,分别向所述多个存储节点发起数据操作指令;所述响应结果是由所述多个存储节点分别返回的。
又如,在本实施例的另一些实施方式中,若所述访问请求对应的数据操作为写入操作或创建操作,则用户程序运行***可以从这多个存储节点中选择一个作为目标存储节点,只向该目标存储节点发起数据操作指令,该目标存储节点在执行该数据操作指令的同时也将该数据操作指令转发给其他存储节点,然后,该目标存储节点收集各个存储节点对该数据操作指令的响应结果一起返回给用户程序运行***。具体地,发起数据操作指令的方式例如可以包括:在所述多个存储节点中选取一个目标存储节点;按照所述存储地址向所述目标存储节点发起数据操作指令,以便所述目标存储节点向所述存储地址对应的其他存储节点转发所述数据操作指令;所述响应结果是所述目标存储节点根据所述目标存储节点对所述数据操作指令的执行结果和所述其他存储节点针对所述数据操作指令返回给所述目标存储节点的执行结果而返回的。
举例说明,如图4所示,假设按照控制节点返回的存储地址用户程序运行***要执行的数据操作是要将数据写入存储节点A、存储节点B和存储节点C,则用户程序运行***可以向存储节点A发送数据操作指令,存储节点A在写入数据的同时将数据转发给存储节点B,存储节点B在写入数据的同时将数据转发给存储节点C,存储节点B和C分别在数据写入成功之后向存储节点A返回写入成功的响应结果,存储节点A在自身数据写入成功且已接收到存储节点B和C返回的写入成功的响应结果之后可以向用户程序运行***返回写入成功的响应结果。
可以理解的是,多种不同的分布式文件***可以用于实现本实施例提及的文件***。例如,本实施例提及的文件***可以是Pangu文件***,控制节点可以是Pangu文件***中的Master,存储节点可以是Pangu文件***中的ChunkServer。又如,本实施例提及的文件***可以是HDFS文件***,控制节点可以是HDFS文件***中的Namenode,存储节点可以是HDFS文件***中的Datanode。
此外,在本实施例中,用户程序运行***和文件***可以属于同一个用于为用户提供网络服务的网络***,即用户程序运行***和文件***都位于网络侧,如网络侧的云端。
可以理解的是,用户程序运行***例如也可以在分布式文件***的存储节点上实现。也就是说,用户程序及其子进程、父进程可以与存储节点实现在同一物理设备上。
通过本实施例中各种实施方式的方法,在用户程序运行***中将用户程序设置并运行于受限环境,当用户程序要对文件***发起访问请求时该访问请求需要通过受限环境的网络访问权限验证才能发送到受限环境之外的网络环境。由于用户程序只能向受限环境之外的网络环境发送通过受限环境的网络访问权限验证的访问请求,因此,用户程序无法绕开访问权限验证而直接对分布式文件***中的磁盘、网络等资源进行操作,因此,分布式文件***就可以不再受到用户程序中恶意代码的威胁,从而避免了用户数据被恶意泄露或被恶意修改。
示例性设备
参见图5,示出了本申请实施例中一种访问文件***的装置的结构示意图。在本实施例中,所述装置可以配置于用户程序运行***。所述装置例如可以包括:
验证单元501,用于在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下;
拒绝单元502,用于响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境;
第一发送单元503,用于响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求;
第一接收单元504,用于接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。
可选的,所述受限环境为子进程,所述子进程由父进程创建,所述子进程通过所述父进程进行网络访问;
所述访问请求是先由所述子进程向所述父进程发送、再由所述父进程向所述文件***发送的;
所述响应结果是先由所述父进程从所述文件***接收、再由子进程从所述父进程接收的。
可选的,所述第一发送单元503,具体用于:
响应于所述访问请求符合所述网络访问权限,识别所述访问请求对应的数据操作的类型;
通过所述类型对应的请求处理程序向所述文件***发送所述访问请求。
可选的,所述文件***包括控制节点和存储节点;
所述装置还包括:
第二接收单元,在向所述文件***发送所述访问请求之后,接收所述控制节点针对所述访问请求返回的存储地址;
第二发送单元,用于按照所述存储地址向所述存储节点发起数据操作指令;
其中,所述存储地址对应的存储空间用于存储所述访问请求所要访问的数据文件,所述数据操作指令用于触发所述存储节点执行所述访问请求对应的数据操作,所述响应结果是所述存储节点对所述数据操作的执行结果。
可选的,所述存储地址包括多个存储节点上的地址;所述访问请求对应的数据操作为读取操作;
所述第二发送单元,具体用于:按照所述多个存储节点上的地址,分别向所述多个存储节点发起数据操作指令;
所述响应结果是由所述多个存储节点分别返回的。
可选的,所述存储地址包括多个存储节点上的地址;所述访问请求对应的数据操作为写入操作或创建操作;
所述第二发送单元,具体用于:
在所述多个存储节点中选取一个目标存储节点;
按照所述存储地址向所述目标存储节点发起数据操作指令,以便所述目标存储节点向所述存储地址对应的其他存储节点转发所述数据操作指令;
所述响应结果是所述目标存储节点根据所述目标存储节点对所述数据操作指令的执行结果和所述其他存储节点针对所述数据操作指令返回给所述目标存储节点的执行结果而返回的。
可选的,所述访问请求对应的数据操作的类型为打开操作、创建操作、读取操作、写入操作或删除操作。
通过本实施例中各种实施方式的装置,在用户程序运行***中将用户程序设置并运行于受限环境,当用户程序要对文件***发起访问请求时该访问请求需要通过受限环境的网络访问权限验证才能发送到受限环境之外的网络环境。由于用户程序只能向受限环境之外的网络环境发送通过受限环境的网络访问权限验证的访问请求,因此,用户程序无法绕开访问权限验证而直接对分布式文件***中的磁盘、网络等资源进行操作,因此,分布式文件***就可以不再受到用户程序中恶意代码的威胁,从而避免了用户数据被恶意泄露或被恶意修改。
参见图6,示出了本申请实施例中一种访问文件***的***的结构示意图。在本实施例中,所述***例如可以包括用户程序运行***601和文件***602;所述用户程序运行***601配置有图5所示的实施例中任意一种实施方式所述的装置。
通过本实施例中各种实施方式的***,在用户程序运行***中将用户程序设置并运行于受限环境,当用户程序要对文件***发起访问请求时该访问请求需要通过受限环境的网络访问权限验证才能发送到受限环境之外的网络环境。由于用户程序只能向受限环境之外的网络环境发送通过受限环境的网络访问权限验证的访问请求,因此,用户程序无法绕开访问权限验证而直接对分布式文件***中的磁盘、网络等资源进行操作,因此,分布式文件***就可以不再受到用户程序中恶意代码的威胁,从而避免了用户数据被恶意泄露或被恶意修改。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (15)

1.一种访问文件***的方法,其特征在于,包括:
在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合所述受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下;
响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境;
响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求;
接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。
2.根据权利要求1所述的方法,其特征在于,所述受限环境为子进程,所述子进程由父进程创建,所述子进程通过所述父进程进行网络访问;
所述访问请求是先由所述子进程向所述父进程发送、再由所述父进程向所述文件***发送的;
所述响应结果是先由所述父进程从所述文件***接收、再由子进程从所述父进程接收的。
3.根据权利要求1所述的方法,其特征在于,所述响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求,包括:
响应于所述访问请求符合所述网络访问权限,识别所述访问请求对应的数据操作的类型;
通过所述类型对应的请求处理程序向所述文件***发送所述访问请求。
4.根据权利要求1所述的方法,其特征在于,所述文件***包括控制节点和存储节点;
所述方法还包括:
在向所述文件***发送所述访问请求之后,接收所述控制节点针对所述访问请求返回的存储地址;
按照所述存储地址向所述存储节点发起数据操作指令;
其中,所述存储地址对应的存储空间用于存储所述访问请求所要访问的数据文件,所述数据操作指令用于触发所述存储节点执行所述访问请求对应的数据操作,所述响应结果是所述存储节点对所述数据操作的执行结果。
5.根据权利要求4所述的方法,其特征在于,所述存储地址包括多个存储节点上的地址,所述访问请求对应的数据操作为读取操作;
所述按照所述存储地址向所述存储节点发起数据操作指令,具体为:按照所述多个存储节点上的地址,分别向所述多个存储节点发起数据操作指令;
所述响应结果是由所述多个存储节点分别返回的。
6.根据权利要求4所述的方法,其特征在于,所述存储地址包括多个存储节点上的地址,所述访问请求对应的数据操作为写入操作或创建操作;
所述按照所述存储地址向所述存储节点发起数据操作指令,包括:
在所述多个存储节点中选取一个目标存储节点;
按照所述存储地址向所述目标存储节点发起数据操作指令,以便所述目标存储节点向所述存储地址对应的其他存储节点转发所述数据操作指令;
所述响应结果是所述目标存储节点根据所述目标存储节点对所述数据操作指令的执行结果和所述其他存储节点针对所述数据操作指令返回给所述目标存储节点的执行结果而返回的。
7.根据权利要求1~6任意一项所述的方法,其特征在于,所述访问请求对应的数据操作的类型为打开操作、创建操作、读取操作、写入操作或删除操作。
8.一种访问文件***的装置,其特征在于,包括:
验证单元,用于在受限环境下,响应于用户程序生成对所述文件***的访问请求,验证所述访问请求是否符合所述受限环境提供的网络访问权限,所述用户程序运行在所述受限环境下;
拒绝单元,用于响应于所述访问请求不符合所述网络访问权限,拒绝将所述访问请求发送到所述受限环境之外的网络环境;
第一发送单元,用于响应于所述访问请求符合所述网络访问权限,向所述文件***发送所述访问请求;
第一接收单元,用于接收所述文件***针对所述访问请求返回的响应结果,并将所述响应结果返回给所述用户程序。
9.根据权利要求8所述的装置,其特征在于,所述受限环境为子进程,所述子进程由父进程创建,所述子进程通过所述父进程进行网络访问;
所述访问请求是先由所述子进程向所述父进程发送、再由所述父进程向所述文件***发送的;
所述响应结果是先由所述父进程从所述文件***接收、再由子进程从所述父进程接收的。
10.根据权利要求8所述的装置,其特征在于,所述第一发送单元,具体用于:
响应于所述访问请求符合所述网络访问权限,识别所述访问请求对应的数据操作的类型;
通过所述类型对应的请求处理程序向所述文件***发送所述访问请求。
11.根据权利要求8所述的装置,其特征在于,所述文件***包括控制节点和存储节点;
所述装置还包括:
第二接收单元,在向所述文件***发送所述访问请求之后,接收所述控制节点针对所述访问请求返回的存储地址;
第二发送单元,用于按照所述存储地址向所述存储节点发起数据操作指令;
其中,所述存储地址对应的存储空间用于存储所述访问请求所要访问的数据文件,所述数据操作指令用于触发所述存储节点执行所述访问请求对应的数据操作,所述响应结果是所述存储节点对所述数据操作的执行结果。
12.根据权利要求11所述的装置,其特征在于,所述存储地址包括多个存储节点上的地址;所述访问请求对应的数据操作为读取操作;
所述第二发送单元,具体用于:按照所述多个存储节点上的地址,分别向所述多个存储节点发起数据操作指令;
所述响应结果是由所述多个存储节点分别返回的。
13.根据权利要求11所述的装置,其特征在于,所述存储地址包括多个存储节点上的地址;所述访问请求对应的数据操作为写入操作或创建操作;
所述第二发送单元,具体用于:
在所述多个存储节点中选取一个目标存储节点;
按照所述存储地址向所述目标存储节点发起数据操作指令,以便所述目标存储节点向所述存储地址对应的其他存储节点转发所述数据操作指令;
所述响应结果是所述目标存储节点根据所述目标存储节点对所述数据操作指令的执行结果和所述其他存储节点针对所述数据操作指令返回给所述目标存储节点的执行结果而返回的。
14.根据权利要求8~13任意一项所述的装置,其特征在于,所述访问请求对应的数据操作的类型为打开操作、创建操作、读操作、写操作或删除操作。
15.一种访问文件***的***,其特征在于,包括用户程序运行***和文件***;所述用户程序运行***配置有权利要求8~14任意一项所述的装置。
CN201710014428.5A 2017-01-09 2017-01-09 一种访问文件***的方法、装置和*** Active CN108289080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710014428.5A CN108289080B (zh) 2017-01-09 2017-01-09 一种访问文件***的方法、装置和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710014428.5A CN108289080B (zh) 2017-01-09 2017-01-09 一种访问文件***的方法、装置和***

Publications (2)

Publication Number Publication Date
CN108289080A true CN108289080A (zh) 2018-07-17
CN108289080B CN108289080B (zh) 2021-02-05

Family

ID=62819354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710014428.5A Active CN108289080B (zh) 2017-01-09 2017-01-09 一种访问文件***的方法、装置和***

Country Status (1)

Country Link
CN (1) CN108289080B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257235A (zh) * 2018-11-12 2019-01-22 深信服科技股份有限公司 网络异常恢复方法、装置、设备及计算机可读存储介质
CN109656884A (zh) * 2018-12-14 2019-04-19 郑州云海信息技术有限公司 一种访问文件的方法及装置
CN114489486A (zh) * 2021-12-28 2022-05-13 无锡宇宁智能科技有限公司 行业数据长存储方法、设备及存储介质
CN115964353A (zh) * 2023-03-10 2023-04-14 阿里巴巴(中国)有限公司 一种分布式文件***及其访问计量方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储***
US20130007891A1 (en) * 2011-06-29 2013-01-03 Canon Kabushiki Kaisha Server system, control method, and storage medium for securely executing access to data of a tenant
CN103778389A (zh) * 2012-10-18 2014-05-07 美国博通公司 不可信的框架组件与安全操作***环境的整合
CN104268484A (zh) * 2014-09-24 2015-01-07 科云(上海)信息技术有限公司 一种基于虚拟隔离机制的云环境下数据防泄漏方法
CN105138904A (zh) * 2015-08-25 2015-12-09 华为技术有限公司 一种访问控制方法和装置
CN105518693A (zh) * 2014-12-29 2016-04-20 华为技术有限公司 一种安全防护方法,及装置
AU2016256794A1 (en) * 2012-09-20 2016-12-01 Airwatch Llc Controlling distribution of resources on a network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储***
US20130007891A1 (en) * 2011-06-29 2013-01-03 Canon Kabushiki Kaisha Server system, control method, and storage medium for securely executing access to data of a tenant
AU2016256794A1 (en) * 2012-09-20 2016-12-01 Airwatch Llc Controlling distribution of resources on a network
CN103778389A (zh) * 2012-10-18 2014-05-07 美国博通公司 不可信的框架组件与安全操作***环境的整合
CN104268484A (zh) * 2014-09-24 2015-01-07 科云(上海)信息技术有限公司 一种基于虚拟隔离机制的云环境下数据防泄漏方法
CN105518693A (zh) * 2014-12-29 2016-04-20 华为技术有限公司 一种安全防护方法,及装置
CN105138904A (zh) * 2015-08-25 2015-12-09 华为技术有限公司 一种访问控制方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257235A (zh) * 2018-11-12 2019-01-22 深信服科技股份有限公司 网络异常恢复方法、装置、设备及计算机可读存储介质
CN109257235B (zh) * 2018-11-12 2022-03-22 深信服科技股份有限公司 网络异常恢复方法、装置、设备及计算机可读存储介质
CN109656884A (zh) * 2018-12-14 2019-04-19 郑州云海信息技术有限公司 一种访问文件的方法及装置
CN114489486A (zh) * 2021-12-28 2022-05-13 无锡宇宁智能科技有限公司 行业数据长存储方法、设备及存储介质
CN114489486B (zh) * 2021-12-28 2023-07-14 无锡宇宁智能科技有限公司 行业数据长存储方法、设备及存储介质
CN115964353A (zh) * 2023-03-10 2023-04-14 阿里巴巴(中国)有限公司 一种分布式文件***及其访问计量方法
CN115964353B (zh) * 2023-03-10 2023-08-22 阿里巴巴(中国)有限公司 一种分布式文件***及其访问计量方法

Also Published As

Publication number Publication date
CN108289080B (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
Tian et al. A real-time correlation of host-level events in cyber range service for smart campus
Scott-Hayward et al. Operationcheckpoint: Sdn application control
CN108289080A (zh) 一种访问文件***的方法、装置和***
CN105303112B (zh) 组件调用漏洞的检测方法及装置
CN107426152B (zh) 云平台虚实互联环境下多任务安全隔离***及方法
CN105760787B (zh) 用于检测随机存取存储器中的恶意代码的***及方法
CN104937897B (zh) 用于消除对网络数据包的冗余安全分析的***和方法
JP2018521405A (ja) アクセス方法及び装置
CN109587151A (zh) 访问控制方法、装置、设备及计算机可读存储介质
CN106873958A (zh) 一种应用编程接口的调用方法及装置
Picco et al. Understanding code mobility
Pecka et al. Privilege escalation attack scenarios on the devops pipeline within a kubernetes environment
CN112398857B (zh) 防火墙测试方法、装置、计算机设备和存储介质
CN107046546A (zh) 一种网络安全控制方法及装置
KR101458930B1 (ko) 멀티 노드를 이용하는 스마트 단말 퍼징 장치 및 그 방법
Johnson et al. Exposing software security and availability risks for commercial mobile devices
CN105610639A (zh) 全量日志抓取方法及装置
CN105871928B (zh) 一种分布式网络的安全控制方法及***
Yu et al. Towards Automated Detection of Higher-Order Memory Corruption Vulnerabilities in Embedded Devices
CN115604103A (zh) 云计算***的配置方法、装置、存储介质以及电子设备
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
CN104731684B (zh) 一种基于驱动过滤技术的动态文件监控和保护***
Nikolopoulos et al. 7. Strategic and Tactical Cyber-Physical Security for Critical Water Infrastructures
CN111385249B (zh) 一种脆弱性检测方法
Castelo Gómez et al. Integrating the edge computing paradigm into the development of IoT forensic methodologies

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