利用缓存的登录对web服务器上动态内容的隔离匿名访问的制作方法

文档序号:7718489阅读:488来源:国知局
专利名称:利用缓存的登录对web服务器上动态内容的隔离匿名访问的制作方法
技术领域
本发明总体上涉及利用缓存的登录对WEB服务器上动态内容的隔离匿名访问。具 体地,涉及用于对web服务器所托管的多个网站上的动态内容进行隔离访问的系统和方 法。
背景技术
Web托管组织经常处理密集型操作,如在单个服务器或服务器集上托管数千、数万 甚至十几万或更多的网站客户。需要密切注意性能和安全问题,以便在维持每个客户的数 据足够安全的同时,提供对内容最广泛的有效访问。 当仅服务静态内容(例如,.html, . jpeg)时,所需要的安全级别和类型与提供动 态内容(例如可执行文件,脚本)时所必须采用的安全是十分不同的。除了防止网站访问 者查看限制访问的内容(例如,受到口令保护的网页),还需要进一步限制动态内容,从而 使客户的脚本(或者,在共享的服务器环境中处理的其他可执行内容)不能访问存储在相 同环境中的其他客户的数据。 例如,如果仅仅允许静态内容,并且所有的访问者都被授权查看所有被托管的内 容(例如,用户均未使用登录方案以过滤访问),则安全需要是相对统一的和基本的。然而, 当在共享web服务器环境中允许运行脚本和/或可执行图像时,客户可以指示web服务器 自行执行的动作的范围显著增加。特别地,客户的脚本可能恶意或者偶然地(例如,通过不 良编程)损坏、损毁或者以其他方式违法地访问其他客户的数据。 但是,如果出于复杂的安全考虑而使安全限制太严格,对于内容的特定片段的访 问可能被错误地禁止,对于授权内容的访问可能被延迟,对于服务器和内容的管理可能变 得非常复杂,等等。结果是得到无效的web托管解决方案,其没有充分满足客户的需求。
虽然必须强制充分的安全措施以保护每个用户的数据不被其他用户影响,但是也 应当维持访问者自动和匿名登录网站的能力。这允许访问者与网站内容匿名交互,而没有 从集中式授权方首先获得登录证书(例如,用户名和口令、数字证书)的不便。更特别地, 当允许客户的脚本在后台代表访问者运行时,给予访问者匿名访问是有益和必要的。
在仍然允许自动和匿名登录的同时,保护web服务器安全的已有尝试是不充分或 无效的,特别是在提供动态内容(例如,脚本)的情况下。例如,在许多恥b托管环境中,所 有匿名内容浏览者使用相同的服务器账户自动登录到网站服务器中,而不考虑他们正在访 问的内容(例如,静态网页、图像、脚本、可执行文件)。这类解决方法没有解决试图限制一 个客户的脚本访问另一个客户的数据这一问题。 当所有匿名网站访问者共享一个账户时,他们共享一个安全上下文,并且不存在 固有的或简单的方式将一个访问者与另一个区别开。因此,文件服务器、web服务器或其他 对已存储数据的访问仲裁器无法轻易在应当允许谁以及应当禁止谁访问给定的内容文件 之间进行区分。除非所有的访问者(以及作为页面浏览结果而运行的所有脚本)具有对所 有内容的访问权,否则个体客户(或其他涉及到的实体)通常将必需指派(并分配)用户
5账户,以便实现用于访问受保护内容的登录过程。 更具体地,如果web服务器上提供可执行内容(例如,脚本、可执行文件),必需鲁 棒地配置安全性,以防止对已存储数据进行未授权访问,但是不应牺牲可接受的性能。部分 安全需求导致需要隔离或隔绝客户和他们的数据,使得来自 一个客户的动态内容不能用于 访问另一个客户的受保护数据。 例如,一个客户可能编创试图删除web服务器上所有文件、另一个客户的目录结 构下所有文件或引起某些其他故障的脚本。允许客户内容的浏览者匿名地和自动地进行连 接这一需要使得对该问题的解决方案复杂化。 —些中间件或应用层软件试图提供保护,以阻止软件的用户未经授权访问。例如, PHP(PHP超文本处理器)包括操作的安全模式,其试图在运行PHP脚本时降低匿名内容浏览 者或用户引起破坏的能力。但是,像实际上所有应用层软件一样,其存在可被利用的漏洞。
对于安全地提供动态内容而不严重影响性能的安全策略这一需求的另一个解决 方法包括虚拟机的使用。在该策略中,为服务器上的每个客户构建虚拟机或虚拟服务器。由 于需要建立许多虚拟环境,该解决方法是处理器密集型的,并且由于资源必需在每个虚拟 机上被许可,该解决方法也是非常昂贵的。另外,必须应用某些映射资源来将内容浏览者映 射到正确的客户虚拟机上。
Microsoft⑧的ns(因特网信息服务)包括相关联的元数据库,其将静态编码
的URL(统一资源定位器)一对应于浏览者可以请求的内容——映射到每个特定的用户
账户,以便应用于每个请求。然而,元数据库在容量上(也即,它能存储多少映射)是有限
的,并且无法扩展为支持可以服务于来自数千或数十万网站的内容的web服务器。
如果为了托管大量网站而采用多个web服务器和元数据库,将进一步增加复杂 性。由于元数据库的容量存在限制,支持大于一个元数据库容量的多个网站就需要对内容 请求进行预处理。预处理使得每个请求被引导到正确的服务器(也即,具有与请求的网站 相对应的元数据库的服务器)。 由于期望服务提供网站的冗余,因此将在服务器池之间复制每个元数据库以便提 供故障转移保护。这可以使得共享元数据库面临挑战,特别是当被托管的网站是动态的时
候,这意味着它们由于客户的一时兴起发生改变,可能改变它们的命名标准,删除网站服务等。 已经证明,导致数据复制而没有足够的工具管理该数据复制的解决方法是昂贵和 易错的。在向不同的元数据库组而非单个元数据库提供服务支持时,会更加昂贵。
支持对web服务器上内容的匿名访问的另一个问题是反复地联系域控制器(或其 他认证实体)以认证每个虚拟浏览者的会话(例如向默认匿名用户账户登录每个请求)这 一负担。该负担不仅导致web服务器性能下降,而且导致接受与web服务器登录会话相关 联的SMB(服务器消息块)网络登录的文件管理器性能下降。 在web服务器上缓存匿名登录会话通常是不可行的,特别是在针对内容的浏览者 请求在多个进程间分布的情况,这是因为默认地,登录句柄或者上下文并非仅在其加载的 进程中有效。可以在多个进程间分布请求,以帮助阻止一个客户的恶意或错误的脚本对其 他浏览者的运行时体验产生不良影响。现有的登录缓存方案不允许进程间通信来准许登 录句柄的共享,并且为每个进程建立的独立缓存策略的开销将获得很小的益处或者没有益
6处。

发明内容
在本发明的一些实施方式中,提供一种系统和方法,用于对web服务器所托管的 多个网站上的动态内容的访问进行隔离,同时缓存登录句柄或者令牌以便在多个进程间进 行共享。 在这些实施方式中,当从网站接收到对动态内容的请求时,首先将其关联到一个 默认匿名用户账户(例如,作为该账户来登录)。UserRetriever过滤模块接着从独立于 恥b服务器并用于其他目的(例如,记账、网站域信息、服务提供、识别何处存储内容)的数 据库中获取与该网站对应的用户名和口令。该数据库充当用于web服务器操作的中央数据 源,并且不需要仅在所请求内容与可用于该请求的用户账户之间进行映射(例如,利用IIS 实现的元数据库)的专门化数据库。 基于由UserRetriever模块获得的用户名和口令,Userlmpersonator扩展模块从
登录缓存管理器请求用于该用户名的登录句柄或令牌,并且可以提供用户名和口令。如果
句柄没有被缓存,则缓存管理器作为该用户来登录,接着复制并返回所请求的登录句柄。在
本发明的这些实施方式中,利用适当的权限来配置用户账户以访问所请求的内容,而不会
对相同服务器或文件管理器上的其他网站进行浏览、修改或者与其交互。 登录句柄被附加到请求上,使得该请求将使用模仿的(impersonated)用户账户
而非该请求最初关联的默认匿名用户账户来完成。动态内容被检索并作为该特定的、受限
的、模仿的用户账户被提供;因此,在该执行线程上操作的软件命令仅可以访问明确授权给
该用户的资源。在该内容被获取或脚本处理完成之后,剥夺所用的登录句柄,将请求与默认
匿名用户账户重新关联,此后终止该请求。 在一些实施方式中,可以实现用户账户的模仿,从而如上所述地限制与该站点相 对应的用户账户对网站内容的访问,而无需缓存登录句柄。


图1是描述可在其中实现本发明实施方式的web托管环境的框图。 图2是示出依照本发明一个实施方式的、用于对web托管环境中的动态内容的匿
名访问进行隔离的一个方法流程图。 图3是示出依照发明实施方式的、用于缓存在web托管环境中的多个并发进程中 使用的登录句柄的一个方法流程图。 图4描绘了依照一个发明实施方式的、用于请求已缓存登录句柄的数据结构。
具体实施例方式
给出下述描述以使得任何本领域技术人员可做出并使用本发明,并在本发明的特 定应用和它们的要求的上下文中提供下述描述。对公开的实施方式的各种修改对于本领域 的技术人员是显而易见的,此处定义的通常的原理可在不偏离本发明的范围的情况下应用 到其他实施方式中。因此,不试图将本发明限制在示出的实施方式,而是与此处公开的原理 和特征相一致的最宽的范围相符。
在本发明的一些实施方式中,提供一种系统和方法,用于隔离或隔绝为多个客户 (每个客户代表被托管的网站)提供动态内容(例如,脚本,可执行文件)的恥b服务器中 的客户内容,以便在没有允许的情况下防止每个客户的动态内容访问其他客户的数据。
在一个实施方式中,浏览者(例如,Internet用户)匿名连接到web服务器(并
且最初与默认匿名用户账户相关联)。接着,基于其请求的内容,浏览者(或他们的请求) 被记录到与拥有所请求内容的客户相关联的用户账户中。该用户账户被授予对于相关联的 客户内容的访问权,但是阻止对其他客户内容的访问。由于用户账户与内容一样是由操作 系统定义的,所以可以利用控制资源访问的操作系统机制(例如,存储控制列表或称ACL)。
在发明的一些实施方式中,提供一种在web服务器上缓存登录会话的策略。可以 实现该实施方式,以允许对与客户网站相关联的用户账户的单独登录将在处理针对该网站 内容的请求的多个进程之间共享。Web服务器的性能得以增强,因为不需要为每个以该网站 作为目标的请求调用域控制器或其他授权代理,并且缓存是由中央进程执行的,而非由多 个请求控制进程并行执行。 图1是可在其中实现本发明某些实施方式的web托管环境的框图。文件管理器110 可以包含任何数量的文件管理器或文件服务器,其存储接近十万客户网站的内容。类似地, 恥b服务器120协同操作以便向浏览者140提供客户的内容。浏览者/用户可以直接连接 到web服务器,或经由局域网或广域网(例如互联网)连接。 文件管理器110和web服务器120可以共同定位,或是地理上分散的。每个web 服务器能够提供来自每个客户网站的内容,无论该内容存储在哪个文件管理器上,或者哪 个网站拥有该内容。 数据库150可以由运营web服务器120的组织来操作,并且存储可操作和/或可 管理的数据,例如文件管理器110的地址/位置、客户内容的位置或者路径、使用哪个用户 账户来访问每个客户的内容(以及相应口令)、记账记录、服务提供信息(例如磁盘空间、带 宽)、网站域名、登录和使用统计、市场信息等。这些属性中的许多没有存储在元数据库中。
Web服务器120包括IIS (因特网信息服务)软件122或者一些其他网站服务器软 件(例如Apache) 。 Web服务器配置用于服务于由客户提供的动态内容,例如脚本和/或可 执行文件。可以支持的示范性脚本语言包括但是不限于PHP、 ASP(动态服务器页面)、以 及JSP(Java服务器页面)。Web服务器120因此包括支持脚本语言所需的引擎、解释器或 者解析器,例如PHP引擎122。 Web服务器120还包括各种ISAPI (因特网服务系统应用程序编程接口 )文件管理 器和扩展,例如UserRetriever模±央124 (ISAPI文件管理器),以及Userlmpersonator模±央 126(ISAPI扩展)。 在本发明示出的实施方式中,UserRetriever模块124配置用于在web服务器120 接收到浏览者针对内容的请求时访问数据库150。 UserRetriever模块获取将用于该请求 (基于内容请求)的用户名和口令,还可能有其他信息(例如,所请求内容的位置或路径)。
将所获取信息的一些或全部传递到Userlmpersonator 126,其将用户账户的登录 令牌附加到处理浏览者内容请求的线程。该请求接着被传递到脚本引擎,或者被配置用于 实际上获取和服务内容并同时模仿UserRetriever 124所识别的用户账户的其他进程。
更具体地,服务内容请求的进程或线程(例如Userlmpersonator126的实例)利
8用先前从数据库150获取的用户名和口令来调用缓存管理器128,而非自己执行登录。缓存管理器在其缓存中搜索用于该用户账户的登录句柄,复制该句柄并将其返回给请求者。如果没有找到,则调用适当的登录服务(例如Windows的LogonUser),缓存其结果句柄,复制该结果句柄并将其提供给请求者。 如上所示,缓存管理器128维护登录句柄或者令牌的缓存,以便在服务内容请求的进程和/或线程间共享。缓存(在图1中未示出)可包括散列表、数据库、平面文件(flatfile)或某些其他结构。 在本发明的一些实施方式中,缓存管理器128可以省略,在这种情况下,用户账户的登录句柄不能缓存。取而代之,Userlmpersonator 126的每个实例可直接调用适当的登录工具。 在本发明的一些其他实施方式中,UserRetriever 124禾P Userlmpersonator 126任意一个或二者可以被省略或被执行相同或相似功能的其他实体替代。在其他实施方式中,如图1中所示的任何组件可以合并或进一步划分。 图2是示出根据本发明一个实施方式的有助于来自多个客户网站的动态内容的服务、而不允许一个客户的内容访问另 一个客户的内容的方法流程图。
在操作202,浏览者通过他或她的浏览器从客户1的网站(例如z. php)请求动态内容。虽然本发明所示出的方法是关于PHP脚本来描述的,但是本领域普通技术人员将理解,在不超出本发明范围的情况下,如何对本方法修改至与其他类型的动态内容(例如ASP脚本、JSP脚本、可执行图像) 一起工作。 在操作204,浏览者的请求被传递到web服务器。在本发明的这个实施方式的示范性实现中,组织可以操作多个web服务器(例如,5个、10个)的集群、场(farm)或其他协作集合,每个恥b服务器可以为组织的每个客户(组织的客户可能超过一万个)提供内容。负载均衡器、路由器或其他实体可用于在服务器间分发请求。 浏览者请求可以分布在任何数量的线程和/或进程间。例如,每个请求将被指派给线程池中的不同线程,并且给定的进程可以处理任意数量的线程。然而,在一个实施方式中,可使用轮询(或其他调度方案)将浏览者内容请求分布在多个进程(例如100个)之间。限制进程的数量,以便最小化资源竞争,并提高进程的隔离,这提高了稳定性和安全性。这有助于确保每个浏览者的体验尽可能与其他浏览者的体验相隔离。 在操作206, web服务器上的监听器听到请求,并附加用于默认匿名用户的安全上下文。在本发明的不同实施方式中,可以执行不同的web服务器软件,例如IIS、 Apache、Lighttpd、 nginx等。而且,在操作206, web服务器调用UserRetriever 124(图1的)或其他定制ISAPI文件管理器或类似实体。 在操作208, UserRetriever过滤器在未与web服务器紧密联系的数据库中执行查
找。因此,如果web服务器是IIS,查找不在相关联的元数据库中执行。 更具体地,除了标识用户账户以便隔离对不同网站的动态内容的匿名访问之外,
数据库还被web服务器的操作者用于其他目的。例如,数据库可用于为客户网站计费、追踪
通信模式等。只要web服务环境的配置改变(例如,网站改变其名字、增加或删除网站)便
更新数据库,这引起数据库总是反映当前配置。 如果不使用这种分离的数据库来标识应用于请求动态内容的用户账户,而是使用与恥b服务器相关联或联系的数据库来确定哪个用户账户应用于内容请求(例如,伴随IIS
的元数据库),则将会发生不必需的复制。如上所述,这将使得管理恥b服务器的配置和操
作的进程显著地复杂化(例如,必需维持同步),并且还会引起扩展性的问题。 数据库中的查找是基于所请求的内容项目(例如,所请求的精确URL,与所请求
URL相匹配的模式),并返回用户名和口令,该用户名和口令将用来为请求的线程指派不同
的安全上下文,即与客户l相关联的上下文。该查找还返回所请求内容的位置(例如路径、
网络地址)。 在本发明的该实施方式中,对文件管理器、文件服务器或者包含客户内容的其他存储设备的访问由访问控制列表或操作系统强制的其他方式进行控制。每个客户与用户账户相关联(在数据库中),该用户账户拥有访问该客户的内容的正常安全许可,而没有访问其他客户的内容的许可。 在查找完成之后,将线程的控制返回给web服务器。Web服务器调用与PHP脚本相关联的定制ISAPI扩展,在该实例中是图1中的Userlmpersonator 126。可以为不同类型的动态内容配置不同的定制ISAPI扩展,或者可由一个定制扩展来处理多个类型。Userlmpersonator的多个实例可以在独立的进程中并行执行。 在操作210, Userlmpersonator使用所获取的口令将用于在操作208的查找中获得的用户名(例如CustomerUserl)的登录令牌附加至请求线程,并设置线程的上下文以匹配该用户账户。 在本发明的不同实施方式中,Userlmpersonator可以通过不同的方式获得登录令牌或句柄。例如,图3描述了缓存管理器(例如,图1中的缓存管理器128)缓存登录句柄以便在多个进程间共享的方法。在本发明的其他实施方式中,Userlmpersonator可通过调用合适的登录实体或服务(例如Windows的LogonUser)直接获得登录句柄。
在操作212,调用引擎、解释器、解析器或能够执行所请求内容的其他模块,例如PHP引擎。PHP引擎获取所请求的内容(例如,使用由UserRetriever标识的路径),并分析和执行该内容。由于脚本是在所请求内容的所有者所关联的安全上下文中执行的,所以内容可正确地运行,而不会有机会影响其他客户的数据。接着,将线程的控制返回给Userlmpersonator模块。 在操作214,剥夺模仿的安全上下文和登录令牌,重新附加默认的匿名用户的上下文,该方法结束。 图3是示出了根据本发明实施方式的在web服务器上缓存登录句柄以供多个进程用来服务内容的的方法流程图。 在操作302,在web服务器处接收针对该web服务器所托管的网站之一的内容的请求。web服务器可以仅仅是协同工作以提升冗余和性能的多个服务器之一,但是每个服务器被配置用于为每个网站提供内容。换句话说,内容请求不需要被路由到配置用于仅仅服务于所有网站的部分内容的特定web服务器(或服务器的子集)。 在操作304,标识具有应用于该请求的安全上下文的用户账户。在一个实施方式中,可如上文结合图2所述的那样来标识账户(例如,通过参考与web服务器分离的数据库)。 特别地,当在web服务器处接收到请求时,可将默认的匿名用户账户和安全上下文应用于该请求,此后,可以调用定制软件模块以从与web服务器分离的数据库中获取目
标用户的账户名和口令。可为每个被服务器托管的网站指定不同的用户账户。 在操作306,配置用于促进内容请求处理的web服务器进程调用登录缓存管理器,
登录缓存管理器是在该服务器上执行的另一个进程。登录缓存管理器配置用于管理用于数
据库中标识的各用户账户的登录句柄的缓存。调用进程标识自身(例如,通过进程id),并
为其需要的登录句柄提供用户账户和口令。 在操作308,缓存管理器在其缓存中搜索与特定用户账户相匹配的登录句柄。如果其找到匹配,该方法进行到操作314 ;否则继续操作310。 在操作310,缓存管理器使用特定的用户名和口令来调用操作系统的登录工具或者服务。 在操作312,缓存管理器接收用于用户账户的登录句柄,并将其存储在缓存中。登录句柄在需要时可转变为例如整数值。 在操作314,针对调用进程提供的进程id,缓存管理器使用由操作系统提供的工
具或服务(例如,Windows的DuplicateHandle)为指定的用户账户复制登录句柄。 在操作316,缓存管理器将登录句柄传送给调用进程。在一个实现中,缓存管理器
和调用进程通过指定的管道通信,当然,在其他实现中,可以使用进程间通信的其他方法。 在操作318,调用进程将复制的登录句柄或令牌附加到与内容请求相关联的线程
上。进程接着继续分解该请求,或者在需要时将其传递到另一个实体(例如,如果内容包括
脚本,则该实体是配置用于获取并执行内容的脚本引擎)。 在本发明的一些实施方式中,在请求被终止之前,从该请求剥夺目标用户账户的安全上下文和登录句柄。 图4描绘了根据本发明一个实施方式的用于将针对登录句柄的请求传递到登录缓存管理器的数据结构。在该实施方式中,登录句柄请求结构410包括版本412、大小字段414、416、418、进程id 424、目标用户名426和目标口令428。 进程id 424标识已经向登录缓存管理器提交了登录句柄请求的进程,目标用户名426标识已经为其请求了登录句柄的用户账户,目标口令是用户账户的口令,登录缓存管理器可能需要该目标口令来登录该账户(如果用于账户的登录句柄当前没有被缓存)。大小字段414、416和418分别识别数据字段424、426和428的大小。 本领域技术人员可以理解,在不超出当前发明范围的情况下,可开发具有其他形式的数据结构以促进登录句柄的缓存和共享。 本发明的当前实施方式所示范性地执行的程序环境,结合了通常意义上的计算机或者特定意义的设备例如手持计算机。为了清楚起见,可省略这些设备(例如处理器、存储器、数据存储设备、显示器)的详细说明。 还可以理解,可使用各种技术实现本发明的技术。例如,可在计算机系统上执行的软件中,或在硬件中,或者在它们的各种结合中实现此处描述的方法,其中该硬件可使用微处理器或其他特殊设计的特定应用集成电路、可编程逻辑设备的结合。 特别地,可使用数据结构和驻留在合适的计算机可读介质上的程序代码实现此处描述的方法,其可为存储数据和/或计算机系统使用的代码的任何设备或介质。这包括,但不限于,易失性存储器、非易失性存储器、磁的和光存储设备例如磁盘驱动器、磁带、CD(光盘)、DVD(数字化通用光盘或数字化视频光盘)、已知的或之后开发的可以存储计算机可读 介质的其他介质。 仅仅为了示出和描述的目的,介绍了本发明的前述实施方式。它们不是无遗漏的 或试图将本发明限制于所公开的形式。因此,由所附权利要求而非前述公开的来定义本发 明的范围。
1权利要求
一种模仿与网站相关联的用户账户以服务来自所述网站的内容的自动方法,所述方法包括在web服务器处接收针对第一网站的内容的请求;将所述请求与所述web服务器上的默认匿名用户账户相关联;在与所述web服务器分离的数据库中,标识与所述第一网站相对应的第一用户账户,其中所述第一用户账户配置有访问所述第一网站的内容的许可,但是没有访问第二网站的内容的许可;搜索用于所述第一用户账户的已缓存的登录句柄;将所述请求与所述第一用户账户而非所述默认匿名用户账户相关联;服务所请求的内容;以及将所述请求与所述默认匿名用户账户而非所述第一用户账户重新关联。
2. 如权利要求1的方法,其中 所请求的内容包括动态内容;以及所述服务包括调用被配置用于执行所述动态内容的实体。
3 如权利要求1的方法,其中所述将所述请求与默认匿名用户账户相关联包括将用 于如下用户账户的登录句柄附加至所述请求,其中,基本上针对内容的所有匿名请求都在 该用户账户下登录。
4. 如权利要求l的方法,其中所述数据库包括用于管理所述web服务器的操作的信息, 以及用于将给定网站内容映射到用于访问所述给定网站内容的给定用户账户的信息。
5. 如权利要求4的方法,其中所述信息包括去往所请求内容的路径。
6. 如权利要求4的方法,其中所述信息包括以下一个或多个 记账数据;服务提供信息;网站的属性;以及网站的使用统计。
7. 如权利要求1的方法,其中数据库不是利用因特网信息服务软件来实现的元数据库。
8. 如权利要求1的方法,其中搜索已缓存的登录句柄包括调用登录缓存管理器,其配置用于缓存登录句柄,以便在所述恥b服务器上执行的多 个过程间共享,从而服务内容;以及 在所述登录缓存管理器处在缓存中搜索用于所述第一用户账户的登录句柄; 如果对所述缓存的所述搜索失败,则作为所述第一用户账户登录; 复制用于所述第一用户账户的所述登录句柄;以及 返回复制的登录句柄;
9. 如权利要求1的方法,其中所述将请求与第一用户账户相关联包括将登录句柄附着 在与该请求相关联的执行的线程上。
10. 如权利要求1的方法,其中所述搜索被缓存的登录句柄包括向登录缓存管理器传输用于第一用户账户的登录句柄请求;以及上述对登录句柄的请求包括第一用户账户的名字、用于第一用户账户的口令和为登录 句柄发出所述请求的进程的标识符。
11. 如权利要求1的方法,其中将所述请求与所述默认匿名用户账户重新关联包括从 所述请求剥夺用于所述第一用户账户的所述登录句柄。
12. —种存储有指令的计算机可读介质,当由计算机执行时,使得计算机执行模仿与网 站相关联的用户账户以服务来自所述网站的内容的方法,所述方法包括在恥b服务器处接收针对第一网站的内容的请求; 将所述请求与所述web服务器上的默认匿名用户账户相关联;在与所述web服务器分离的数据库中,标识与所述第一网站相对应的第一用户账户, 其中所述第一用户账户配置有访问所述第一网站的内容的许可,但是没有访问第二网站的 内容的许可;搜索用于所述第一用户账户的已缓存的登录句柄;将所述请求与所述第一用户账户而非所述默认匿名用户账户相关联;服务所请求的内容;以及将所述请求与所述默认匿名用户账户而非所述第一用户账户重新关联。
13. —种计算机服务器,配置用于服务来自多个网站的动态内容,所述服务器包括 web服务器软件,其配置用于接收针对来自第一网站的动态内容的请求,并将默认匿名用户账户与所述请求相关联;web服务器过滤器,其配置用于在与所述web服务器分离的数据库中标识用于访问来 自所述第一网站的内容的定制用户账户;web服务器扩展,其配置用于从缓存管理器请求用于所述定制用户账户的登录句柄; 将所述登录句柄附加至针对所述动态内容的所述请求;以及 在所请求的所述动态内容被执行之后,从所述请求中移除所述登录句柄。
14. 如权利要求13的服务器,其中所述缓存管理器进一步配置用于 接收针对所述登录句柄的请求; 在缓存中搜索所述登录句柄;如果对所述缓存的所述搜索未成功,则作为所述定制用户账户登录; 复制所述登录句柄;以及将复制的登录句柄返回给所述web服务器扩展。
15. 如权利要求14的服务器,其中针对所述登录句柄的所述请求包括 所述定制用户账户的名字;所述定制用户账户的口令;以及 所述web服务器扩展的进程标识符。
16. 如权利要求13的服务器,其中所述缓存管理器缓存所述登录句柄,以供所述web服 务器上执行的所述恥b服务器扩展的多个实例使用。
17. 如权利要求13的服务器,进一步包括与所述数据库的连接,其中所述数据库不是 被配置用于利用因特网信息服务软件进行操作的元数据库。
18.如权利要求13的服务器,其中所述数据库包括用于促进所述web服务器管理的信 息,以及用于将所请求的动态内容映射到所述定制用户账户的信息。
全文摘要
本发明涉及利用缓存的登录对WEB服务器上动态内容的隔离匿名访问。具体地,提供了用于对web服务器所托管的多个网站上的动态内容进行隔离访问的系统和方法。当从网站接收针对动态内容的请求时,UserRetriever模块从与web服务器分离、并用于其他目的(例如记账)的数据库中标识去往该内容的路径,并获取与网站相对应的用户名和口令。UserImpersonator模块从登录缓存管理器中请求用于该用户名的登录句柄。使用该登录句柄将请求与模仿的用户账户而非请求最初所关联的默认匿名用户账户相关联。在受限模仿用户账户会话的上下文中获取和服务动态内容,此后,剥夺所应用的登录句柄,并且将请求与默认匿名用户账户重新关联。
文档编号H04L29/08GK101729597SQ200910221478
公开日2010年6月9日 申请日期2009年9月29日 优先权日2008年10月17日
发明者B·C·希克斯 申请人:因特伟特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1