服务器以及执行请求指令的方法与流程

文档序号:11234116阅读:413来源:国知局
服务器以及执行请求指令的方法与流程

本发明涉及服务器的领域,尤其是涉及于一种网页服务器及其执行请求指令的方法。



背景技术:

在现有的网页服务器中,当接收到使用者所传送的一请求指令时,服务器会根据使用者的身分及/或所述请求指令所要求存取的内容(例如是读取静态网页(*.html)或是执行网页程序(*.php))来选择具有不同权限的工作者(worker)身分来执行。然而,这些不同的工作者身分在某些情况下会造成彼此之间的沟通问题,进而造成网页程是在设计上的困难。



技术实现要素:

因此,本发明的目的之一在于公开一种网页服务器,其中的网页服务模块仅使用一种工作者身分来执行请求指令,以解决现有技术中的问题。此外,为了可以存取任何所需要的档案内容,此工作者身分具有高的访问权限,因此,本发明的实施例另外设计了安全模块来限制请求指令的存取范围,以在高的存取效能下可以兼顾数据的安全性。

依据本发明一实施例,一服务器包括一网页服务模块以及一共通网关接口模块,其中所述网页服务模块包括一配置文件,其中所述配置文件描述了具有权限以存取所述服务器内的档案的一应用程序。在所述服务器的操作上,所述网页服务模块用以接收来自所述服务器外部的一请求指令,并将所述请求指令转送到所述共通网关接口模块,以判断所述请求指令是否具有执行的权限,并将判断结果回传至所述网页服务模块;若是所述请求指令具有执行的权限且所述请求指令符合所述配置文件内所描述的所述应用程序,则所述 网页服务模块读取所述请求指令所要求的档案,并回传所述档案。

依据本发明另一实施例,一种执行一请求指令的方法包括:使用一网页服务模块来接收所述请求指令,并将所述请求指令传送到一共通网关接口模块;使用所述共通网关接口模块来判断所述请求指令是否具有执行的权限;将所述共通网关接口模块的判断结果回传至所述网页服务模块;使用所述网页服务模块判断所述请求指令所对应到的应用程序是否符合一配置文件的内容;以及若是所述请求指令具有执行的权限,且所述请求指令所对应到的应用程序符合所述配置文件的内容,则使用所述网页服务模块读取所述请求指令所要求的档案,并回传所述档案。

依据本发明另一实施例,一服务器包括一网页服务模块,其中所述网页服务模块用以接收来自所述服务器外部的一请求指令,并根据所述请求指令所对应到的应用程序来判断所述请求指令是否具有下载文件的权限;若是所述请求指令具有下载文件的权限,则重新设定一档案路径,以读取并回传所述档案;以及若是所述请求指令不具有下载文件的权限,则不会将所述档案路径设为正确的档案路径,且回传一读取失败的通知。

依据本发明另一实施例,一种执行一请求指令的方法包括:接收来自一服务器外部的一请求指令;根据所述请求指令所对应到的应用程序来判断所述请求指令是否具有下载文件的权限;若是所述请求指令具有下载文件的权限,则重新设定一档案路径,以读取并回传所述档案;以及若是所述请求指令不具有下载文件的权限,则不会将所述档案路径设为正确的档案路径,且回传一读取失败的通知。

附图说明

图1为依据本发明一实施例的一服务器的示意图。

图2为依据本发明一实施例的服务器执行来自电子装置的一请求指令的示意图。

图3为依据本发明另一实施例的服务器执行来自电子装置的一请求指令的示意图。

图4为对应至不同应用程序的多个储存区块的示意图。

图5为依据本发明一实施例的执行一请求指令的流程图。

其中,附图标记说明如下:

100服务器

102电子装置

110处理器

120储存单元

130网页服务模块

140共通网关接口模块

410_1~410_3储存区块

500~514步骤

具体实施方式

请参考图1,其为依据本发明一实施例的一服务器100的示意图。如图1所示,服务器100至少包括了一处理器110以及一储存单元120,其中储存单元120包括了一网页服务模块130以及一共通网关接口(commongatewayinterface,cgi)模块140。在此实施例中,服务器100是一多功能网络附加储存服务器,也就是包括了网页服务器的功能,而服务器100可通过网页服务模块130接收来自用户端的电子装置102所传送来的一请求指令,以进行静态网页数据或是网页程序的存取,举例来说,服务器100可通过网页服务模块130接收来自用户端所传送来的一网络地址(uniformresourcelocator,url),也就是接收来自使用者端的一超文本传输协议(hypertexttransferprotocol,http)请求,并对所述网络地址进行处理,以提供http回复给使用者端;然而,本发明并不以此为限,服务器100亦可包括其他的服务器功能。

实作上,网页服务模块130以及共通网关接口模块140是以软件的方式来执行,也就是处理器110执行储存单元120中的一或多组程序代码后来执行网页服务模块130以及共通网关接口模块140的操作。

网页服务模块130在执行来自用户端的请求指令时,指派至少一工作者(worker)执行所述操作请求。在本实施例中,网页服务模块130采用nginx网页服务器的架构来实作,且网页服务模块130中所有的工作者都具有相同的权限(也就是说,同一种工作者身分),详细来说,nginx网页服务器中有关于"工作者"的执行模式有两种,即主程序(masterprocess)以及工作者程序(workerprocess),其中主程序用来监控工作者程序的状态以及数量,且主程序会在服务器100开机时建立出多个具有相同权限的工作者,且来自外部的请求指令均由这些工作者来负责执行。此外,网页服务模块130采用了linux能力(linuxcapability)的设定方式来让所有的工作者都具有最高的权限。详细来说,网页服务模块130可以设定linux系统中的cap_dac_read_search或cap_dac_override指令为具有最高读取能力,以使得网页服务模块130可以无视其他传统unix系统的权限检查,而读取任意档案的内容。

此外,由于网页服务模块130的工作者均被设定可以读取服务器100中的任意档案,为了避免使用者存取到不该被读取的档案内容,例如系统程序档案,因此,本实施例另外在网页服务模块130包括一配置文件,其中此配置文件描述了具有权限以存取所述服务器内的档案的应用程序。换言之,配置文件设定有哪些应用程序才可以被允许存取所需的档案,以限制使用者的存取范围,其中此配置文件可以在服务器100安装操作系统的同时进行设定,或是在其他任何适合的时间点来进行设定。此外,服务器100也再通过共通网关接口模块140来审查用户的身分是否有资格进行档案存取,以确保服务器100中的数据安全性。

详细来说,请参考图2,其为依据本发明一实施例的服务器100执行来自电子装置102的一请求指令的示意图。如图2所示,首先,当使用者需要自服 务器100下载一档案时,电子装置102会传送一请求指令至服务器100中,在本实施例中,请求指令为一网络地址或是相关的一档案路径"/volume1/share/a.txz"。接着,网页服务模块130接收此所述请求指令,并将所述请求指令转送到共通网关接口模块140,或是将所述请求指令作处理后转送到共通网关接口模块140。共通网关接口模块140在接收到所述请求指令之后,会先判断所述请求指令是否具有执行的权限,以产生一判断结果。更具体来说,由于用户在通过电子装置102联机到服务器100会登录本身的使用者身分(也就是使用者账号),故共通网关接口模块140可以通过判断所述请求指令的一用户身分与一档案路径来决定出所述请求指令是否具有执行的权限。在判断完所述请求指令是否具有执行的权限之后,共通网关接口模块140传送所述判断结果至网页服务模块130,并同时回传欲下载的档案的档案路径至网页服务模块130,在本实施例中,共通网关接口模块140使用nginx网页服务器的x-accel机制来传送档案路径"/volume1/share1/a.txz"至网页服务模块130。

网页服务模块130在收到来自共通网关接口模块140的判断结果以及档案路径之后,会根据所述请求指令是否具有执行的权限且所述请求指令是否符合所述配置文件内所描述的所述应用程序,来决定是否将所接收到的档案路径重新设定为一正确的档案路径。具体来说,假设网页服务模块130中的配置文件描述了档案管理应用程序(filestation)以及音乐播放应用程序(audiostation)可以允许下载操作,则当所述请求指令是属于档案管理应用程序或是音乐播放应用程序时,网页服务模块130会将所接到的档案路径"/volume1/share1/a.txz"重新设定为正确的档案路径,例如将接收到的档案路径的前面加上"^\volume\d+/"以产生正确的档案路径;之后,网页服务模块130根据此正确的档案路径自服务器100中取得档案,并将所读取的档案回传给电子装置102。

另一方面,假设所述请求指令不属于档案管理应用程序或是音乐播放应用程序时,也就是说,所述请求指令所属的应用程序没有被描述在网页服务模块130的配置文件中时,则网页服务模块130便不会将所接收到的档案路径重新设定为正确的档案路径。以图3所示的为例,若是所述请求指令所属的应 用程序没有被描述在网页服务模块130的配置文件中时,则网页服务模块130会将所接收到的档案路径"/volume1/share1/a.txz"转换为不正确的档案路径"/usr/syno/synoman/volume1/share1/a.txz",因而造成网页服务模块130无法正确地读取所需的档案。

在以上的实施例中,有关于档案的存取全部都是由网页服务模块130来完成;而共通网关接口模块140只会传送档案路径给网页服务模块130,而不会针对请求指令来进行档案的存取,以降低服务器100在操作上的负担。此外,当请求指令所请求的档案为一静态档案时,此方式可具有较佳的存取效能。

第2、3图所示的使用转换路径来限制档案存取的方式可视为是一种使用者空间(userspace)的安全性保护方式,此外,在本发明的另一实施例中,也可以同时再采用一种核心空间(kernelspace)的保护方式来更进一步提升安全性。具体来说,请参考图4,其绘示了多个储存区块410_1-410_3,其可设置于储存单元120中或是服务器100内的任何储存装置,其中每一个储存区块410_1-410_3具有其特定的存取目录,例如图标的“/volume1”、“/volume2”、“/volume3”,且每一个储存区块410_1-410_3只可以由特定应用程序所对应到的请求指令来存取。举例来说,假设储存区块410_1是用来储存档案管理应用程序(filestation)的档案数据,则当用户通过电子装置102并使用档案管理应用程序来传送请求指令时,网页服务模块130及共通网关接口模块140所产生的档案路径便只会链接到储存区块410_1,而不会连接到其他的储存区块,以避免读取到其他不适合被读取的档案,例如系统密码文件及敏感的系统信息。举另一例子来说,假设储存区块410_2是用来储存音乐播放应用程序(audiostation)的档案数据,则当用户通过电子装置102并使用音乐播放应用程序来传送请求指令时,网页服务模块130及共通网关接口模块140所产生的档案路径便只会链接到储存区块410_2,而不会连接到其他的储存区块。此外,在本实施例中,上述核心空间的保护方式是以linux安全模块(linuxsecuritymodule,lsm)的apparmor来实作。

参考以上的公开内容,本发明的执行一请求指令的流程可以如图5所示,其中图5所示的流程步骤如下。

步骤500:流程开始。

步骤502:使用一网页服务模块来接收所述请求指令,并将所述请求指令传送到一共通网关接口模块。

步骤504:使用所述共通网关接口模块来判断所述请求指令是否具有执行的权限。

步骤506:将所述共通网关接口模块的判断结果以及一档案路径回传至所述网页服务模块。

步骤508:使用所述网页服务模块判断所述请求指令所对应到的应用程序是否符合一配置文件的内容。

步骤510:根据所述共通网关接口模块的判断结果以判断所述请求指令是否具有执行的权限,并判断所述请求指令所对应到的应用程序是否符合所述配置文件的内容。若是,流程进入步骤512;若否,则流程进入步骤514。

步骤512:重新设定所述档案路径,以直接读取并回传所述档案。

步骤514:不会将所述档案路径设为正确的档案路径,且回传一读取失败的通知。

简要归纳本发明,在本发明的服务器中,其中的网页服务模块仅使用一种工作者身分来执行请求指令,且为了可以存取任何所需要的档案内容,此工作者身分具有高的访问权限;此外,为了避免高访问权限所造成的安全性问题,本发明的实施例另外在核心空间与使用者空间上分别设计了安全模块来限制请求指令的存取范围,以在高的存取效能下可以兼顾数据的安全性。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1