对网络地址的处理方法及服务器与计算机可读储存介质的制作方法

文档序号:8530454
对网络地址的处理方法及服务器与计算机可读储存介质的制作方法
【技术领域】
[0001]本发明涉及服务器,尤指一种支持两种不同的超文本预处理器(HypertextPreprocessor, PHP)模式,且可以根据所接收到的网络地址是否具有使用者账号来决定使用哪一种PHP模式的服务器。
【背景技术】
[0002]在传统服务器的PHP模块中,例如Apache网页服务器软件中的模块“mod_php”,是利用单一执行身分(有效拥有者身分(effective user identify, EUID)与有效拥有群组身分(effective group identify, EGID)来执行 PHP 请求(request)。因此,在多人共享一台服务器的情况下,若某一个使用者账号储存在服务器的程序有安全漏洞(例如,写入恶意档案),则很有可能会影响到服务器中其他使用者的档案安全性。
[0003]相关技术当中提出了一些方案。根据一传统方案的提议,可使用PHP执行模块PHP-FPM(FastCGI Process Manager)以根据不同的请求路径(例如,不同的用户账号下的档案目录/路径)指定不同的执行身分。然而,此方案必须要在处理请求之前就预先准备好各执行身分所对应的执行池(pool),而无法动态地给予执行身分。举例来说,假设目前服务器内有一千个使用者开启个人网页服务(personal web stat1n),为了要达到独立执行身分的目的,服务器必须要指定一千个执行池的设定给PHP-FPM,且若是用户的动态有新增或是删除时就需要重新启动PHP-FPM。如上所述,PHP-FPM并不适合作家目录网页服务。
[0004]此外,根据另一传统方案的提议,可使用另一个PHP执行模块suPHP以根据档案的拥有者来动态指定执行身分。然而,因为suPHP于处理请求时多了安全性检查与判断逻辑的步骤,故suPHP的效能远不及PHP-FPM。
[0005]为了兼顾安全性及效能,目前的实作方式通常是以一台反向代理服务器(reverseproxy server)来将请求转向到suPHP网页服务器或是PHP-FPM网页服务器。然而,由于这种架构需要同时启动两个网页服务器与一台反向代理服务器,不仅需要较多的硬件资源,且数据在不同服务器间转送也会有额外的延迟时间产生。

【发明内容】

[0006]因此,本发明的目的之一在于公开一种服务器,其支持两种不同的PHP模式,且可以根据所接收到的网络地址是否具有一使用者账号来决定使用哪一种PHP模式,以解决现有技术的问题。
[0007]依据本发明一实施例,一服务器包含一处理器以及一储存单元,所述储存单元储存一程序代码,其中当所述处理器执行所述程序代码时会执行以下步骤:接收来自所述服务器外部的一网络地址;判断所述网络地址是否具有一使用者账号,并将所述网络地址转换为一档案路径;当所述网络地址具有所述使用者账号时,使用一第一超文本预处理器模式来处理所述档案路径;以及当所述网络地址不具有所述使用者账号时,使用一第二超文本预处理器模式来处理所述档案路径。
[0008]依据本发明另一实施例,公开一种非瞬时计算机可读取储存媒体,其设置于一服务器中且储存有一程序代码,其中当所述程序代码被一处理器执行时会执行以下步骤:接收来自所述服务器外部的一网络地址;判断所述网络地址是否具有一使用者账号,并将所述网络地址转换为一档案路径;以及当所述网络地址具有所述使用者账号时,使用一第一超文本预处理器模式来处理所述档案路径;以及当所述网络地址不具有所述使用者账号时,使用一第二超文本预处理器模式来处理所述档案路径。
[0009]依据本发明另一实施例,公开一种对一网络地址进行处理的方法,其中所述方法应用在一服务器中,所述网络地址来自所述服务器的外部,且所述方法包含有:判断所述网络地址是否具有一使用者账号,并将所述网络地址转换为一档案路径;以及当所述网络地址具有所述使用者账号时,使用一第一超文本预处理器模式来处理所述档案路径;以及当所述网络地址不具有所述使用者账号时,使用一第二超文本预处理器模式来处理所述档案路径。
【附图说明】
[0010]图1为依据本发明一实施例的服务器的示意图。
[0011]图2为当处理器执行程序代码时所执行的步骤。
[0012]图3为服务器中的程序代码对所接收到的网络地址进行处理的示意图。
[0013]其中,附图标记说明如下:
[0014]100服务器
[0015]102网络线
[0016]110处理器
[0017]120储存单元
[0018]122程序代码
[0019]200 ?206步骤
[0020]310suPHP 模块
[0021]320PHP-FPM 模块
[0022]mod_userdir家目录网页服务模块
[0023]mod_fastcgi快速共通网关接口模块
【具体实施方式】
[0024]请参考图1,图1为依据本发明一实施例的服务器100的示意图。如图1所示,服务器100包含有一处理器110以及一储存单元120,其中储存单元120包含一程序代码122,且程序代码122可包含一网页服务器软件(例如但不限于Apache)的至少一部分(例如一部分或全部),这只是为了说明的目的而以,并非对本发明的限制。此外,服务器100通过一网络线102连接到网络,以与外部的电子装置进行数据的传送。在本实施例中,服务器100为一网页服务器,用来接收来自使用者端所传送来的一网络地址(Uniform ResourceLocator, URL),亦即接收来自使用者端的一超文本传输协议(HyperText TransferProtocol, HTTP)请求,并对所述网络地址进行处理,以提供HTTP回复给使用者端。
[0025]请参考图2,图2为当处理器110执行程序代码122时所执行的步骤。参考图2,程序代码122所包含的步骤如下所述:
[0026]步骤200:接收来自所述服务器外部的一网络地址;
[0027]步骤202:判断所述网络地址是否具有一使用者账号,并将所述网络地址转换为一档案路径;
[0028]步骤204:当所述网络地址具有所述使用者账号时,使用一第一 PHP模式来处理所述档案路径;以及
[0029]步骤206:当所述网络地址不具有所述使用者账号时,使用一第二 PHP模式来处理所述档案路径。
[0030]请参考图3,图3为服务器100中的程序代码122对所接收到的网络地址进行处理的示意图,其中图3中所示的家目录网页服务模块mod_userdir、快速共通网关接口(FastCommon Gateway Interface, FastCGI)模块 mod_fastcg1、suPHP 模块 310 与 PHP-FPM 模块320为程序代码122中的程序模块。
[0031]详细说明图3的实施例,首先,家目录网页服务模块mod_userdir接收到来自使用者端的一 HTTP请求,所述HTTP请求由用户端的一电子装置(例如计算机、移动电话、或是平板计算机等)上的浏览器所发出,并通过网络线102传送到服务器100中,且所述HTTP请求包含一网络地址。接着,家目录网页服务模块mocLuserdir在接收到所述网络地址之后,会判断所述网络地址是否具有一使用者账号。详细来说,假设所述网络地址为http://DiskStat1n/?ken/Sone.php,则家目录网页服务模块mod_userdir会通过判断此
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1