CN114008994B - 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统 - Google Patents

一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统 Download PDF

Info

Publication number
CN114008994B
CN114008994B CN202080043721.4A CN202080043721A CN114008994B CN 114008994 B CN114008994 B CN 114008994B CN 202080043721 A CN202080043721 A CN 202080043721A CN 114008994 B CN114008994 B CN 114008994B
Authority
CN
China
Prior art keywords
request
proxy server
client
response
server
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.)
Active
Application number
CN202080043721.4A
Other languages
English (en)
Other versions
CN114008994A (zh
Inventor
G·勒温
I·阿祖雷
Y·哈伯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN114008994A publication Critical patent/CN114008994A/zh
Application granted granted Critical
Publication of CN114008994B publication Critical patent/CN114008994B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

公开了一种代理服务器,该代理服务器用于接收从客户端到网络服务器的请求和与该请求相对应的从网络服务器到客户端的响应。请求被封装,并且经封装的请求在代理服务器处被接收。经封装的请求在代理服务器处被读取。在代理服务器处元数据被添加到与经封装的请求相对应的响应中。元数据可以基于所读取的经封装的请求或对应的响应。

Description

一种代理服务器接收从客户端到网络服务器的请求和与所述 请求相对应的从所述网络服务器到所述客户端的响应的方法 及系统
背景技术
云计算是一种服务交付模型,用于实现对可配置计算资源的共享池的方便的按需网络访问,该共享池可以通过名义管理工作或与服务提供方的交互来快速生成和释放。云计算允许云消费方以弹性且有时是非永久性的方式获取计算资源,诸如网络、网络带宽、服务器、处理存储器、存储设备、应用、虚拟机和服务即服务。云计算平台和基础设施允许开发人员为应用构建、部署和管理资产和资源。云计算可以包括可以保护资源和资产免受攻击的安全服务。
发明内容
提供本“发明内容”以便以简化形式介绍在下面的“具体实施方式”中进一步描述的概念的选择。本“发明内容”不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
云计算环境可以包括诸如云访问安全代理的安全服务,安全服务可以在用户与网络应用之间实施策略和日志记录会话数据。本公开针对一种代理服务器,该代理服务器用于接收从客户端到网络服务器的请求和与该请求相对应的从网络服务器到客户端的响应。在一个示例中,请求是AJAX请求,诸如网络应用中的XMLHttpRequest对象或获取方法。客户端与网络服务器之间的流量被引导通过代理服务器。在客户端处封装该请求,诸如通过网络浏览器操作从安全服务器提供的封装引擎,以形成经封装的请求。经封装的请求在代理服务器处被读取。在一个示例中,经封装的请求的内容在代理服务器处被确定。例如,经封装的请求的内容可以被读取以确定该请求是用于文件下载还是用于简单数据。在代理服务器处元数据被添加到与经封装的请求相对应的响应中。元数据可以基于所读取的经封装的请求,诸如经封装的请求的内容、响应等。元数据可以在客户端处被处理,诸如经由封装引擎,封装引擎可以包括用于读取元数据的钩子(hook)。在一个示例中,代理服务器被实现在本地或在云访问安全代理中。代理服务器可以是反向代理服务器,该反向代理服务器用于在客户端(诸如企业中的用户)与运行网络应用(诸如软件即服务应用)的网络服务器之间提供服务。
附图说明
附图被包括以提供对实施例的进一步理解并且被并入并且构成本公开的一部分。附图示出了实施例并且与说明书一起用于解释实施例的原理。其他实施例和实施例的很多预期优点将容易理解,因为它们通过参考以下描述变得更好理解。附图的元素不必相对于彼此成比例。相同的附图标记表示对应的相似部件。
图1是示出计算设备的示例的框图,该计算设备可以被配置在计算机网络中以提供例如云计算环境。
图2是示出云计算环境的示例的示意图。
图3是示出可以被包括在图2的云计算环境中的示例网络服务请求标识系统的示意图。
图4是示出图3的网络服务请求标识系统的示例方法的框图。
具体实施方式
在下面的“具体实施方式”中,参考形成其一部分的附图,并且其中通过说明的方式示出了可以在其中实践本发明的特定实施例。应当理解,在不脱离本发明的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑改变。因此,以下描述不应当被视为限制意义。应当理解,除非另外特别指出,否则本文中描述的各种示例实施例的特征可以部分或全部彼此组合。
图1示出了示例性计算机系统,该计算机系统可以在操作环境中被采用并且用于托管或运行被包括在一个或多个计算机可读存储介质上的计算机应用,该计算机可读存储介质存储用于控制诸如计算设备等计算机系统执行过程的计算机可执行指令。示例性计算机系统包括计算设备,诸如计算设备100。计算设备100可以采用若干形式中的一种或多种。这样的形式包括平板电脑、个人计算机、工作站、服务器、手持设备、消费电子设备(诸如视频游戏控制台或数字录像机)等,并且可以是独立设备或配置为计算机网络的一部分。
在基本硬件配置中,计算设备100通常包括处理器系统,该处理器系统具有一个或多个处理单元(即,处理器102)和存储器104。举例来说,处理单元可以包括在一个芯片或两个或更多个处理器芯片上的两个或更多个处理核。在一些示例中,计算设备还可以具有用于执行从处理器102卸载的处理功能的一个或多个附加处理或专用处理器(未示出),诸如用于在图形处理器单元上的通用计算的图形处理器。存储器104可以分层布置并且可以包括一个或多个级别的缓存。取决于计算设备的配置和类型,存储器104可以是易失性的(诸如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)或这两者的某种组合。
计算设备100还可以具有附加特征或功能。例如,计算设备100还可以包括附加存储设备。这种存储设备可以是可移除或不可移除的,并且可以包括磁盘或光盘、固态存储器或闪存设备,诸如可移除存储设备108和不可移除存储设备110。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何合适的方法或技术实现的易失性和非易失性的可移除和不可移除介质。存储器104、可移除存储设备108和不可移除存储设备110都是计算机存储介质的示例。计算机存储介质包括RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能光盘(DVD)或其他光存储、磁带、磁带、磁盘存储或其他磁存储设备、通用串行总线(USB)闪存驱动器、闪存卡或其他闪存设备、或者可以用于存储期望信息并且可以由计算设备100访问的任何其他存储介质。因此,传播信号本身不符合条件作为存储介质。任何这样的计算机存储介质都可以是计算设备100的一部分。
计算设备100通常包括一个或多个输入和/或输出连接,诸如USB连接、显示端口、专有连接、和用于连接到各种设备以向计算设备提供输入和输出的其他连接。输入设备112可以包括诸如键盘、指示设备(例如,鼠标、轨迹板)、指示笔、语音输入设备、触摸输入设备(例如,触摸屏)等设备。输出设备111可以包括诸如显示器、扬声器、打印机等设备。
计算设备100通常包括允许计算设备100与其他计算机/应用115通信的一个或多个通信连接114。示例通信连接可以包括以太网接口、无线接口、总线接口、存储区域网络接口和专有接口。通信连接可以用于将计算设备100耦合到计算机网络,计算机网络可以根据诸如拓扑、连接方法和规模等多种特性进行分类。网络是由通信信道互连的计算设备和可能的其他设备的集合,通信通道促进通信并且允许在互连设备之间共享资源和信息。计算机网络的示例包括局域网、广域网、互联网或其他网络。
在一个示例中,计算设备100中的一个或多个可以被配置为网络中的用户的客户端设备。客户端设备可以被配置为在计算环境中与网络上的服务器建立远程连接。客户端设备可以配置为运行应用或软件,诸如操作系统、网络浏览器、云访问代理、终端模拟器或实用程序。
在一个示例中,计算设备100中的一个或多个可以被配置为数据中心中的服务器以提供分布式计算服务,诸如云计算服务。数据中心可以提供池化资源,客户或租户可以按需在该池化资源上动态地配置和伸缩应用,而无需添加服务器或附加联网。数据中心可以被配置为与诸如由云消费方使用的本地计算设备通信,包括个人计算机、移动设备、嵌入式系统或其他计算设备。在数据中心内,计算设备100可以被配置为服务器,或者作为独立设备或者作为一个或多个其他服务器设备的机架中的个体刀片。每个服务器上的一个或多个主机处理器(诸如处理器102)、以及包括存储器104和存储设备110的其他组件运行可以支持多个虚拟机的主机操作系统。租户最初可以使用服务器上的一个虚拟机来运行应用。数据中心可以在需求增加时激活服务器或其他服务器上的附加虚拟机,并且数据中心可以在需求下降时停用虚拟机。
数据中心可以是向单个企业用户提供服务的本地私有系统,或者可以是向多个可能不相关的消费方和租户提供服务的公有(或半公有)可访问分布式系统,或者可以是这两者的组合。此外,数据中心可以被包含在单个地理位置内,也可以分布在全球的多个位置并且提供冗余和灾难恢复能力。例如,数据中心可以将服务器上的一个虚拟机指定为租户应用的主要位置,并且可以激活同一或另一服务器上的另一虚拟机作为辅助或备份,以防第一虚拟机或服务器出现故障。
云计算环境通常在一个或多个公认模型中实现以在一个或多个网络连接的数据中心中运行。私有云部署模型包括专为组织运营的基础设施,无论该基础设施是在内部管理还是由第三方管理,也无论该基础设施是被托管在组织内部还是在某个远程外部位置。私有云的一个示例包括自运行数据中心。公共云部署模型包括可用于公众或大部分公众(诸如行业团体)并且由提供云服务的组织运营的基础设施。社区云由若干个组织共享,并且支持具有共同关注点(诸如管辖权、合规性或安全性)的特定组织社区。部署模型通常包括类似的云架构,但可以包括解决特定考虑因素的特定特征,诸如共享云模型中的安全性。
云计算提供方通常提供用于云计算环境的服务作为服务模型,该服务模型作为基础设施即服务、平台即服务和其他服务(包括软件即服务)中的一个或多个而被提供。云计算提供方可以经由向租户或消费方的订阅来提供服务。例如,软件即服务提供方提供软件应用作为订阅服务,该软件应用通常从网络浏览器或其他瘦客户端界面可访问,并且消费方不会在本地计算设备上加载应用。基础设施即服务提供方为消费方提供对处理、存储、网络和其他基本计算资源的配置能力,消费方能够在该资源中部署和运行软件,该软件包括操作系统和应用。消费方通常不管理底层云基础设施,但通常保留对计算平台和在平台上运行的应用的控制。平台即服务提供方为消费方提供将消费方创建或获取的应用部署到云基础设施上的能力,该应用是使用由提供方支持的编程语言、库、服务和工具创建的。在一些示例中,消费方不管理或控制底层云基础设施,包括网络、服务器、操作系统或存储,但可以控制所部署的应用和应用托管环境的可能配置设置。在其他示例中,提供方可以提供基础设施和平台服务的组合,以允许消费方管理或控制所部署的应用以及底层云基础设施。平台即服务提供方可以包括基础设施,诸如服务器、存储和网络,并且还包括中间件、开发工具、商业智能服务、数据库管理服务等,并且可以被配置为支持应用生命周期的特征,包括构建、测试、部署、管理和更新中的一个或多个。
图2示出了这样的云计算环境中的计算机网络200的示例,该网络200用于在网络服务器上部署动态网页(该动态网页可以包括网络应用202)以由用户在客户端设备204上访问。在示出的示例中,网络200包括安全服务206,安全服务206可以包括诸如云访问安全代理等的安全代理,该安全代理被设置以处理客户端设备204与网络应用202之间的网络流量。网络应用202是在远程服务器上运行的软件应用。在很多情况下,客户端设备204上的网络浏览器用于通过网络200(诸如互联网)来访问网络应用。
在一个示例中,网络应用可以被配置为软件即服务应用或SaaS。SaaS是一种软件模型,在这种软件模型中,软件基于订阅而被许可并且被集中托管。SaaS通常由用户使用瘦客户端访问,例如,经由诸如计算设备100等计算设备上的网络浏览器应用。SaaS已经成为很多商业应用的通用交付模型。SaaS应用也称为基于网络的软件、按需软件和托管软件。很多SaaS应用基于多租户架构,在这种架构中,应用的单一版本(具有单一配置,诸如硬件、网络和操作系统)供所有客户或租户使用。为了支持可伸缩性,在诸如一个数据中心或多个数据中心等环境中,应用被安装在多个机器上或水平伸缩。这与更传统的应用架构形成对比,在更传统的应用架构中,软件的多个物理副本(其可以包括不同版本或不同配置)跨各种客户站点(诸如企业的不同计算设备)被安装。某些SaaS应用不使用多租户,或者可以使用其他机制(诸如虚拟化)来代替多租户来成本有效地管理大量客户。随着网页技术(诸如HTML、JavaScript和CSS)的标准化以及逐渐降低了开发SaaS解决方案的成本的网络应用框架的引入和普及,SaaS应用变得流行起来。
在一些示例中,SaaS应用可以涉及对客户当前数据的访问或集成,并且在这样的数据量大或敏感的情况下,将数据与远程托管软件集成可能成本高昂或有风险,或者可能与数据管理法规冲突。
诸如云访问安全代理等的安全服务206在用户204与网络应用202之间提供服务。在一个示例中,安全服务206可以支持企业的多个用户(诸如用户204)访问多个SaaS应用,诸如网络应用202,该多个SaaS应用被企业订阅或以其他方式被访问。在一些示例中,安全服务206可以部署在本地或经由云服务来访问。在一个示例中,在多租户模型中,安全服务206可以支持多个企业访问一组或多组SaaS应用。安全服务206可以监测用户204与网络应用202之间的活动并且实施安全策略。例如,云访问安全代理可以监测用户活动,就潜在危险行为向管理员发出警告,强制执行安全策略合规性,并且自动防止或降低企业中的恶意软件的可能性。
在一个示例中,安全服务206是分布式的基于云的代理,该代理是用户和应用活动的内联代理。安全服务206可以在架构内应用认证信息来跟踪用户204和被访问的网络应用202的身份。例如,安全服务206可以在认证或流量级别作为反向代理操作以创建来自网络应用202的重新定向。通过经由反向代理,而不是直接在用户204与网络应用204之间的安全服务206,用户204被引导到网络应用204。用户请求和网络应用响应在会话期间行进通过安全服务206。例如,在用户204对由安全服务206服务的有效网络应用202进行认证之后,安全服务可以用安全服务206的域替换到网络应用202的网络链接,以将用户保持在会话中。例如,与网络应用204相对应的网络地址可以通过封装来被加后缀,以被引导到安全服务206的代理服务器。安全服务206可以将安全域链接附加到网络应用的链接以在会话中保持相关链接、cookie和脚本。在一个示例中,安全服务206可以将会话活动保存到日志中并且实施会话的策略。
图3示出了网络应用请求和响应标识系统300,在一个示例中,标识系统300可以被并入安全服务206中。标识系统300可以包括计算机可读存储设备,该计算机可读存储设备用于存储用于控制处理器(诸如数据中心的服务器)的计算机可执行指令。在一个示例中,标识系统300可以实现为计算机程序以运行作为代理服务器的一部分的处理器,诸如反向代理服务器,用以在客户端302与网络应用服务器304之间引导流量,诸如在安全服务中206。例如,系统300可以引导与在客户端302和网络服务器304上运行的网络应用相关的流量。
在该示例中,网络应用202可以包括一组网络开发技术,诸如AJAX,该技术在客户端侧使用技术来创建同步或异步网络应用202。例如,利用AJAX,网络应用202可以从网络服务器304异步地发送和检索数据,而且通常不会干扰客户端302的网络浏览器中页面的显示和行为。AJAX允许网络应用204动态改变网页的内容,而无需在网络浏览器中重新加载整个网页。AJAX通常是异步(asynchronous)JavaScript和XML的缩写,但可以包括其他实现,诸如同步请求,也可以使用代替XML用于数据交换的JSON(JavaScript对象表示法)和其他格式(诸如HTML或纯文本)以及ECMAscript的其他实现。术语AJAX和JavaScript的使用是说明性的,本领域技术人员可以容易地标识异步客户端侧脚本技术的其他实现或示例。在网络应用模型的一个示例中,在客户端302处实现网络应用的网络浏览器310可以包括用户界面306和引擎308,诸如AJAX引擎。网络浏览器310中的用户界面306在客户端302处与引擎308去耦。为了更新网络应用的内容,用户界面306向引擎308发送调用。引擎308经由通过到网络服务器304的网络连接进行的异步通信来发送请求,诸如AJAX请求。网络服务器304经由到引擎308的网络连接,通过HTTP提供具有诸如XML或JavaScript数据等数据的响应。引擎308可以向用户界面306提供更新后的内容以及HTML/CSS数据。在一个示例中,AJAX请求可以在JavaScript中使用内置的XMLHttpRequest(XHR)对象或fetch()方法来执行,以在不刷新网页的情况下将内容加载到网络浏览器310上。XHR是对象形式的示例应用程序编程接口(API),其方法在网络浏览器310与网络服务器304之间传输数据。XHR可以与不同于HTTP的协议一起使用,并且可以采用不同于XML的其他形式。Fetch API提供了一个JavaScript接口以用于访问和操作HTTP管道的部分,诸如请求和响应,其功能类似于XHR。在本公开的示例中,AJAX请求和对应响应经由实现请求和响应标识系统300的安全服务206在客户端302与网络服务器304之间被引导。
可以提供AJAX请求,诸如XHR对象和获取方法,以包括针对不同网络服务器的不同方法。通常,代理服务不与AJAX请求通信。在一个示例中,由于对跨源资源共享或请求中的CORS的限制,代理服务被禁止与AJAX请求通信。缺乏通信可能会导致安全代理分析请求流量和提供其他客户端支持的能力出现差距。
封装引擎312被部署在网络浏览器310中的客户端302处。在示例安全服务206中,标识系统300确定关于网络上的通信的信息,诸如响应是否包括来自网络服务器304的文件下载或纯文本数据,网络服务器304可以用于向安全服务记录这样的信息并且向客户端302提供元数据。在该示例中,系统300接收来自客户端302的发往网络服务器304的网络应用请求。经由封装引擎312,系统300使请求被封装,诸如在网络浏览器310处。系统300读取经封装的请求和从网络服务器304提供给客户端302的对应响应。在一个示例中,系统300将封装引擎312提供给网络浏览器310,该网络浏览器310可以并入引擎308。封装引擎312在客户端侧封装请求,诸如在网络浏览器310处,该经封装的请求被提供给操作代理服务器的安全服务206。经由封装引擎,浏览器310可以包括使得封装引擎能够读取对经封装的请求的响应的钩子。该请求被提供有不影响流或不会将错误写入网络浏览器310的封装器。在一个示例中,系统300可以经由封装引擎312确定该请求是XHR对象还是获取方法。例如,系统可以检查经封装的请求中的标志以确定请求的信息和内容。在XHR对象的情况下,封装引擎312能够读取经封装的请求以确定它是同步的还是异步的(获取方法是异步的),诸如通过检查请求中的标志。系统300可以日志记录请求的内容。作为反向代理,系统300提供在网络浏览器310处被封装并且将要被发送给网络服务器304的请求,并且从网络服务器304接收发往客户端302的对应响应。系统300能够读取对经封装的请求的响应,以确定诸如响应包括文件下载还是纯数据等内容。系统300可以日志记录关于响应内容的信息。系统300还可以包括关于响应内容的元数据,诸如报头。报头可以包括超文本传输协议HTTP通信报头。例如,系统300可以向响应写入报头,以提示客户端300该响应包括文件下载还是纯数据。在一个示例中,钩子(诸如引擎308中的JavaScript钩子等)可以对元数据做出反应。可以通过向响应添加HTTP报头(诸如ACCESS-CONTROL-EXPOSE-HEADERS或其他CORS报头)来移除CORS限制。
图4示出了可以由实现标识系统300的代理服务器使用的示例方法400。代理服务器接收从客户端302到网络服务器304的网络应用请求,并且接收从服务器304到客户端302的针对该请求的对应响应。例如,请求可以是AJAX请求。在402处,该请求在客户端处被封装,诸如使用网络浏览器310,并且经封装的请求在代理服务器处被接收。安全服务206可以将封装引擎312提供到客户端302,诸如到网络浏览器310,以封装请求和钩子响应。在404处,系统300在代理服务器处读取经封装的请求。例如,系统300可以在代理服务器处确定经封装的请求的内容。在一个示例中,封装引擎312可以通过读取经封装的请求来确定该请求是异步的还是同步的。系统300还可以在代理服务器处读取与经封装的请求相对应的响应,诸如确定该响应的内容。例如,系统300可以确定响应是包括文件下载还是纯数据。在406处,系统300可以向响应添加元数据。例如,系统300可以将HTTP报头形式的元数据包括到响应以提示客户端302该响应是包括文件下载还是纯数据。系统可以使用安全服务来日志记录该信息。诸如引擎308等的客户端302可以读取元数据并且相应地做出反应。
示例系统300和方法400可以被实现为包括一个或多个硬件设备和计算机程序的组合,以用于控制系统(诸如具有处理器和存储器的计算系统)执行方法400。例如,系统300和方法400可以实现为具有用于控制处理器执行方法400的一组可执行指令的计算机可读介质或计算机可读存储设备。系统300和方法400可以被包括作为云环境中的服务,诸如实现云访问安全代理以实施安全策略的安全服务,并且在数据中心中的计算设备100上被实现为代理服务器,诸如反向代理服务器,以在客户端302与网络服务器304之间引导网络流量。
尽管本文中已经图示和描述了特定实施例,但是本领域普通技术人员将理解,在不脱离本发明的范围的情况下,可以用多种替代和/或等效实现替代所示出和描述的特定实施例。本申请旨在涵盖本文中讨论的特定实施例的任何修改或变化。

Claims (20)

1.一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法,所述方法包括:
在所述代理服务器处接收经封装的请求;
在所述代理服务器处读取所述经封装的请求,以在所述代理服务器处经由移除跨源资源共享报头中的跨源资源共享限制来确定所述请求是否包括文件下载;以及
在所述代理服务器处将元数据添加到与所述经封装的请求相对应的响应,所述元数据包括所述请求是否包括文件下载和所述跨源资源共享报头。
2.根据权利要求1所述的方法,其中所述代理服务器是反向代理服务器。
3.根据权利要求1所述的方法,其中所述代理服务器在所述客户端与所述网络服务器之间引导流量。
4.根据权利要求1所述的方法,其中所述请求是AJAX请求。
5.根据权利要求4所述的方法,其中所述AJAX请求包括XMLHttpRequest对象或者获取方法。
6.根据权利要求4所述的方法,其中所述AJAX请求包括跨源资源共享限制。
7.根据权利要求1所述的方法,其中所述元数据包括基于读取所述响应的元数据。
8.根据权利要求1所述的方法,其中将元数据添加到所述响应包括将报头添加到所述响应。
9.根据权利要求1所述的方法,其中将元数据添加到所述响应包括添加关于所述响应是否包括文件下载的元数据。
10.根据权利要求1所述的方法,包括读取与所述经封装的请求对应的所述响应。
11.一种用于存储计算机可执行指令的计算机可读存储设备,所述计算机可执行指令用于控制处理器:
在客户端处封装请求,所述请求从所述客户端到网络服务器;
在代理服务器处读取经封装的请求,以在所述代理服务器处经由移除跨源资源共享报头中的跨源资源共享限制来确定所述请求是否包括文件下载;以及
在所述代理服务器处将元数据添加到与所述经封装的请求相对应的、从所述网络服务器到所述客户端的响应,所述元数据包括所述请求是否包括文件下载和所述跨源资源共享报头。
12.根据权利要求11所述的计算机可读存储设备,其中用于添加元数据的所述指令包括向所述响应添加报头的指令。
13.根据权利要求11所述的计算机可读存储设备,其中用于读取所述经封装的请求的所述指令包括用于确定所述经封装的请求的内容的指令。
14.根据权利要求11所述的计算机可读存储设备,包括用于在所述客户端与所述网络服务器之间路由流量的指令。
15.一种系统,包括:
存储器设备,用于存储指令集合;以及
处理器,用于执行所述指令集合以:
封装从客户端到网络服务器的请求;
在代理服务器处读取经封装的请求,以在所述代理服务器处经由移除跨源资源共享报头中的跨源资源共享限制来确定所述请求是否包括文件下载;以及
在所述代理服务器处将元数据添加到与所述经封装的请求相对应的、从所述网络服务器到所述客户端的响应,所述元数据包括所述请求是否包括文件下载和所述跨源资源共享报头。
16.根据权利要求15所述的系统,其中所述指令用安全服务实现。
17.根据权利要求16所述的系统,其中所述安全服务是云访问安全代理。
18.根据权利要求17所述的系统,其中所述云访问安全代理强制执行安全策略。
19.根据权利要求16所述的系统,其中所述安全服务记录对所述网络服务器的访问。
20.根据权利要求15所述的系统,其中所述代理服务器是用于在所述客户端与所述网络服务器之间引导网络流量的反向代理服务器。
CN202080043721.4A 2019-06-18 2020-05-05 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统 Active CN114008994B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/444,762 US11394765B2 (en) 2019-06-18 2019-06-18 Web server request identification
US16/444,762 2019-06-18
PCT/US2020/031396 WO2020256841A1 (en) 2019-06-18 2020-05-05 Web server request identification

Publications (2)

Publication Number Publication Date
CN114008994A CN114008994A (zh) 2022-02-01
CN114008994B true CN114008994B (zh) 2024-03-29

Family

ID=70775597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080043721.4A Active CN114008994B (zh) 2019-06-18 2020-05-05 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统

Country Status (4)

Country Link
US (2) US11394765B2 (zh)
EP (1) EP3984197B1 (zh)
CN (1) CN114008994B (zh)
WO (1) WO2020256841A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184403B1 (en) 2021-04-23 2021-11-23 Netskope, Inc. Synthetic request injection to generate metadata at points of presence for cloud security enforcement
US11190550B1 (en) 2021-04-22 2021-11-30 Netskope, Inc. Synthetic request injection to improve object security posture for cloud security enforcement
US11178188B1 (en) * 2021-04-22 2021-11-16 Netskope, Inc. Synthetic request injection to generate metadata for cloud policy enforcement
US11271973B1 (en) 2021-04-23 2022-03-08 Netskope, Inc. Synthetic request injection to retrieve object metadata for cloud policy enforcement
US11271972B1 (en) 2021-04-23 2022-03-08 Netskope, Inc. Data flow logic for synthetic request injection for cloud security enforcement
CN114285659B (zh) * 2021-12-28 2024-05-24 深圳市酷开网络科技股份有限公司 一种反向代理方法、装置、设备及存储介质
CN114338674B (zh) * 2021-12-30 2023-08-18 天翼物联科技有限公司 一种多代理自动化部署方法以及系统
US11943260B2 (en) 2022-02-02 2024-03-26 Netskope, Inc. Synthetic request injection to retrieve metadata for cloud policy enforcement
CN115065723B (zh) * 2022-08-17 2022-11-04 中航信移动科技有限公司 用于网络容灾的数据处理系统
WO2024103257A1 (zh) * 2022-11-15 2024-05-23 Oppo广东移动通信有限公司 用于访问控制的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618444A (zh) * 2014-12-30 2015-05-13 北京奇虎科技有限公司 一种基于反向代理服务器处理请求的方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467391B2 (en) * 2002-10-30 2008-12-16 International Business Machines Corporation Allowing client applications to programmatically access web sites
US7490141B1 (en) * 2008-05-15 2009-02-10 Ibm Corporation Ajax proxy indirection for external domain requests
GB2505730B (en) * 2012-11-30 2014-10-15 Openwave Mobility Inc A method, apparatus and computer program for controlling access to content in a communications network
US9953014B1 (en) * 2013-11-08 2018-04-24 Instart Logic, Inc. Collection management in document object model virtualization
US20150188779A1 (en) * 2013-12-31 2015-07-02 Jut, Inc. Split-application infrastructure
US10582001B2 (en) * 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618444A (zh) * 2014-12-30 2015-05-13 北京奇虎科技有限公司 一种基于反向代理服务器处理请求的方法和装置

Also Published As

Publication number Publication date
EP3984197B1 (en) 2024-04-03
EP3984197A1 (en) 2022-04-20
US11394765B2 (en) 2022-07-19
CN114008994A (zh) 2022-02-01
US11770439B2 (en) 2023-09-26
US20220311820A1 (en) 2022-09-29
WO2020256841A1 (en) 2020-12-24
US20200403976A1 (en) 2020-12-24

Similar Documents

Publication Publication Date Title
CN114008994B (zh) 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统
US10645020B1 (en) Virtual networking for compute instances
CN111885123B (zh) 一种跨K8s目标服务访问通道的构建方法及装置
JP2021524090A (ja) 代替サーバ名を使用する相互トランスポート層セキュリティを選択的に提供すること
US10089152B1 (en) Using scripts to bootstrap applications with metadata from a template
CN110780930B (zh) 启动Android系统的方法、装置、电子设备及存储介质
US10891569B1 (en) Dynamic task discovery for workflow tasks
JP6445710B2 (ja) マルチモード・システム・オン・チップ
US20210160220A1 (en) Security service
CN115225707A (zh) 资源访问方法及装置
CN114205342A (zh) 服务调试的路由方法、电子设备、介质及程序产品
EP3740869B1 (en) Automated distribution of models for execution on a non-edge device and an edge device
EP3967023B1 (en) Web application wrapper
US10402252B1 (en) Alternative event reporting for peripheral devices
Sharma et al. Getting Started with Istio Service Mesh: Manage Microservices in Kubernetes
US10705945B1 (en) Computing system testing service
US11017084B2 (en) Detection of malicious code fragments via data-flow isolation
US11494184B1 (en) Creation of transportability container files for serverless applications
CN111600755B (zh) 上网行为管理系统和方法
US11513833B1 (en) Event listener interface for container-based execution of serverless functions
KR20230003490A (ko) 오케스트레이션된 프록시 서비스
Sharma et al. Getting Started with Istio Service Mesh
Corona nginx
US11475122B1 (en) Mitigating malicious client-side scripts
JP7473287B2 (ja) コンピュータ・システムの複数のインスタンスと関連付けられたリソースをプロビジョニングするための方法、装置及びコンピュータ・プログラム

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