CN105793826A - 云后缀代理及其方法 - Google Patents
云后缀代理及其方法 Download PDFInfo
- Publication number
- CN105793826A CN105793826A CN201580002873.9A CN201580002873A CN105793826A CN 105793826 A CN105793826 A CN 105793826A CN 201580002873 A CN201580002873 A CN 201580002873A CN 105793826 A CN105793826 A CN 105793826A
- Authority
- CN
- China
- Prior art keywords
- script
- network address
- suffix
- client device
- webpage
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/301—Name conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
- H04L2101/355—Types of network names containing special suffixes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
用来修改至少一个云应用的网络地址的方法和系统。所述方法包括接收从该至少一个云应用发送至客户端设备的网页,其中网页指定在运行时期间被加载至客户端设备的至少一个脚本;将代码片段注入该网页;通过被注入的代码片段,接收加载所述至少一个脚本中的每个脚本的尝试;通过对在所述至少一个脚本上指定的每个网络地址添加预定义网络地址作后缀来修改所述至少一个脚本;以及将经修改的至少一个脚本发送至客户端设备,其中经修改的至少一个脚本在客户端设备上的运行时执行导致从客户端设备至云应用的将来请求重定向至被添加后缀的网络地址。
Description
相关申请的交叉引用
本申请要求2014年9月12日提交的美国临时申请第62/049,473号的权益。本申请还是2014年11月12日提交的美国专利申请第14/539,980号的部分延续,该专利申请的内容通过引用结合于此。
技术领域
本申请一般涉及通过监视和保护通信来保护通信网络和系统,尤其是通过使用后缀代理。
背景
近年来,越来越多的供应商提供在云中创建计算环境的能力。例如,AmazonWebServicesTM(也被称为AWS)在2006年推出一种提供给用户配置针对在云平台上执行的应用定制的整个环境的能力的服务。一般而言,此类服务允许开发可缩放的应用,其中利用计算资源来支持应用的高效执行。
开发、提供或以其他方式维护基于云的应用的组织和企业变得习惯于依赖这些服务且实现从复杂的网站到作为软件即服务(SaaS)递送模型来提供的应用和服务的各种类型的环境。此类服务和应用被统称为“云应用”。
云应用通常由使用客户端设备的用户经由web浏览器访问。云应用尤其包括:电子商务应用、社交媒体应用、企业应用、游戏应用、媒体共享应用、存储应用、软件开发应用等等。许多个人用户、公司以及企业转向云应用来代替在本地安装和管理的“传统”软件应用。例如,企业可使用对于电子邮箱账户的365在线服务,而不是拥有由企业维护的服务器。
企业越来越多地采用基于云的SaaS供应。这些服务经受各种网络安全风险。用于保护这些网络的已知系统通过检测运行SaaS的服务器与用户操作的端点之间的流量来操作。这些已知网络安全系统通常需要端点的复杂配置,端点的复杂配置增加了系统复杂性。
此外,在许多情况下,端点可能不在企业的完全控制之下、可能完全非受管或以其他方式不可配置。除了配置和管理用户控制的端点中的固有难点之外,在网络地址被动态生成时难以确保整个会话的流量捕捉。
此外,诸如Apps平台的现代web/云应用,利用大量客户机侧代码(JavaScript)。这可使后缀代理实现更具挑战性得多,因为基本代理功能不足且需要客户机侧代码中的进一步干预。
因此提供克服用于HTTP通信的捕捉和重构的现有技术中的不足的解决方案将是有利的。
概述
下面是本公开的若干示例实施例的概述。此概述是出于方便读者以提供此类实施例的基本理解的目的而提供的,而不完全定义本公开的广度。本概述不是所有构想的实施例的详尽概览,既不旨在确定所有实施例的重要或关键元素也不旨在描述任何或所有实施例的范围。其唯一目的是以简化的形式呈现一个或多个实施例的一些概念,作为后面给出的更加详细的描述的序言。为方便起见,术语一些实施例在本文中可被用来指本公开的单个实施例或多个实施例。
本公开的一些实施例涉及用于修改至少一个云应用的网络地址的方法。所述方法包括接收从该至少一个云应用发送至客户端设备的网页,其中网页指定在运行时期间被加载至客户端设备的至少一个脚本;将代码片段注入该网页;通过被注入的代码片段,接收加载所述至少一个脚本中的每个脚本的尝试;通过对在所述至少一个脚本上指定的每个网络地址添加预定义网络地址作后缀来修改所述至少一个脚本;以及将经修改的至少一个脚本发送至客户端设备,其中经修改的至少一个脚本在客户端设备上的运行时执行导致从客户端设备至云应用的将来请求重定向至被添加后缀的网络地址。
本公开的一些实施例涉及用于修改至少一个云应用的网络地址的系统。所述系统包括处理器;以及包含指令的存储器,当所述指令被处理器执行时,将系统配置为:接收从该至少一个云应用发送至客户端设备的网页,其中网页指定在运行时期间被加载至客户端设备的至少一个脚本;将代码片段注入该网页;通过注入的代码片段,接收加载所述至少一个脚本中的每个脚本的尝试;通过对在所述至少一个脚本上指定的每个网络地址添加预定义的网络地址后缀来修改所述至少一个脚本;以及将经修改的至少一个脚本发送至客户端设备,其中经修改的至少一个脚本在客户端设备上的运行时执行导致从客户端设备至云应用的将来请求重定向至被添加后缀的网络地址。
附图简述
本文所公开的主题在本说明书的结束部分的权利要求书中被特别地指出且清楚地声明。通过下面结合附图的详细描述,将更清楚所公开的实施例的前述和其他目标、特征和优点。
图1是被用来描述各公开的实施例的联网系统图示。
图2是例示出根据一个实施例的安全沙箱的操作的流程图。
图3是示出根据一个实施例的用于控制对DOM的改变的方法的流程图。
图4是根据一个实施例实现的后缀代理的框图。
详细描述
重要的是注意到本文所公开的实施例仅仅是本文的创新性教导的许多有益用途的示例。通常,本申请的说明书中所做的表述不必然限制各个所要求保护的实施例中的任何实施例。此外,一些表述可应用至一些创造性特征但不能应用至其他创造性特征。通常,除非另外指明,在不丧失通用性的情况下,单数元素可为复数且反之亦然。在附图中,相似的附图标记在多个附图中指代相似的部分。
通过示例的方式,可配置各公开的实施例对基于网络的软件即服务(SaaS)供应商与客户机之间的网络流量进行操作。如将在下文中更详细地讨论的,公开的实施例允许定向至所述SaaS供应商的非侵入式加后缀以及去后缀的网络地址。
图1是被用来描述各公开的实施例的联网系统100的示例性和非限制性图示。联网系统100包括云计算平台110,云计算平台110可为给其中执行的应用或服务提供计算资源的私有云、公有云或混合云。在一实施例中,所述云计算平台110可属于SaaS平台。
开发、提供或以其他方式维护基于云的应用的组织和企业变得习惯于依赖这些服务且实现从复杂的网站到作为SaaS递送模型来提供的应用和服务的各种类型的环境。此类服务和应用被统称为“云应用115”。
云应用115通常由使用客户端设备的用户经由web浏览器访问。云应用115尤其包括:电子商务应用、社交媒体应用、企业应用、游戏应用、媒体共享应用、存储应用、软件开发应用等等。许多个人用户、公司以及企业转向云应用来代替在本地安装和管理的“传统”软件应用。例如,企业可使用对于电子邮箱账户的365在线服务,而不是拥有由企业维护的服务器。
所述联网系统100进一步包括被通信地连接至网络150的受管网络代理120、客户端设备130-1至130-N以及后缀代理140。网络150可为,例如,广域网(WAN)、局域网(LAN)、因特网等。所述客户端设备130中的每一个可包括,例如,个人计算机、膝上型计算机、平板计算机、智能电话、可穿戴计算设备、或任何其他计算设备。
客户端设备130被配置为访问在云计算平台110中执行的一个或多个云应用。客户端设备130可为受管设备或非受管设备。受管设备通常由组织的IT人员保护,而非受管设备不是。参考以上示例,工作计算机是受管设备而家庭计算机是非受管设备。
受管网络代理120被配置为保护云计算平台110中的任何或全部流量和活动。具体而言,受管网络代理120可被用来截取、监视、修改以及转发客户端设备130与所述云计算平台110之间的网络通信流量。
受管网络代理120可被配置为检测且减轻对所述云应用115和/或所述云计算平台110的基础结构的网络威胁。作为非限制性示例,受管网络代理120可被配置为通知可疑网络流量和行为;阻挡威胁;对网络流量执行应用控制、URL过滤以及恶意软件保护;建立对应用层参数(例如,用户列表、设备列表、位置列表等)的可见性;生成使用所述云应用115的用户的简档;提供特定或预定义事件警告;生成审计日志;等等。受管网络代理120的体系结构和操作在被转让给共同受让人的美国专利申请第14/539,980号中被讨论,且通过援引纳入于此。
根据某些实施例,所述后缀代理140被配置为将代理网页的诸URL与web访问保持在受管网络代理120的控制下。即,针对访问所述云应用115的网页的请求而由所述后缀代理140执行的修改允许将后续流量定向至受管网络代理120。
在一实施例中,所述后缀代理140可被配置为检查网络流量且检测基于云的应用115的地址。此类地址的示例包括,例如,统一资源定位符(IRLs)、统一资源标识符(URIs)等等。作为非限制性示例,所述后缀代理140可反编译、解构或分解网络流量以供检查。
在实施例中,所述后缀代理140可被配置为修改在其中和在所述云计算平台110上执行的网页和代码(例如,JavaScript),使得没有会将所述客户端设备130定向至直接访问所述云应用115的网络地址被提供给所述客户端设备130。若此类网络地址被检测到,所述后缀代理140被配置为重写该地址,例如,将预定义的域名附加至原始网络地址。被添加的域名可将浏览器引用或重定向至受管网络代理120。例如,URL(网络地址)http://www.somesite.com将可通过http://www.somesite.com.network-proxy-service.com来访问。下面公开了重写网络地址的各种实施例。
所述后缀代理140可被配置为修改从所述云应用115发送的任何内容,包括网页。所述后缀代理140可被配置为检查和/或反编译任何内容来标识在所述内容中呈现的任何被引用页面和/或URL且重写那些URL。作为非限制性示例,经处理的文件类型可包括HTML或JavaScript且响应可包括压缩响应或分块响应。
在一个实施例中,对静态网页,对在此类网页中嵌入的URL,预定义后缀域名被添加。为此,所述后缀代理140被配置为解析HTML网页且使用正则表达式替换检测到的URL。静态网页是不包含客户机可执行脚本(例如,JavaScript)代码的网页。
根据另一个实施例,为了给动态网页中的网络地址加后缀,所述后缀代理140被配置为分析且修改正在被加载至所述客户端设备130的浏览器的代码或脚本。例如,JavaScript可由所述后缀代理140修改为包装将会直接访问所述云应用115的网络地址的任何潜在生成。若直接访问地址被标识,所述脚本和/或由所述脚本生成的内容可被修改以重写所述地址来引用所述受管网络代理120。
在实施例中,所述后缀代理140被配置为提供安全沙箱,该安全沙箱是在所述客户端设备130上执行的运行时组件。所述安全沙箱的某些功能可在所述后缀代理中执行。所述安全沙箱被标记为安全沙箱145。在一实施例中,所述安全沙箱145被配置为阻止对网页的文档对象模型(DOM)的访问。具体而言,所述安全沙箱145在所述脚本的运行时期间阻止任何对所述DOM的访问和修改。应当注意的是安全沙箱145阻止对所述DOM的访问的操作不需要在所述客户端设备130和/或所述浏览器中诸如插件、附件等任何软件的任何安装。
通常,在客户端设备130上的浏览器可执行将在运行时期间改变网页的DOM的脚本(例如,JavaScript)。因此,所述客户端设备130的浏览器创建或修改具有去后缀的URL的DOM元素是可能的。为了组织此类动作,所述安全沙箱145,并且因此所述后缀代理140,被配置为限制任何嵌入的或加载的脚本代码对所述DOM的访问。
在一实施例中,所述限制的性质可为如此:在网页中执行的原始脚本对所述DOM中的URL的任何改变由所述安全沙箱145监视。由所述后缀代理140监视的脚本代码可被调用以用于对DOM元素的读访问和写访问。即,URL进入所述DOM的写入被添加预定义域名作后缀,而URL从所述DOM的读取是经去后缀的。因此,“用户”代码(例如,所述web应用代码)所见的URL与浏览器自身(所述DOM,及其JavaScript表示)所见的URL之间可存在间隔。因此,原始脚本代码可被所述安全沙箱145有效地维护和控制,且任何与原始服务器(绕过所述代理)的通信都被阻止了。应该注意的是,原始脚本是任何嵌入在网页中的脚本而不是动态加载至网页的。在某些配置中,在网页被呈现在浏览器上之后脚本可被加载至网页。此类脚本是使用若干形式的任一种从服务器(最初被配置为伺服该页面)下载的,包括HTML页面内部的内联脚本以及任何代码、脚本或内容文件。此类文件的示例包括,例如,JavaScript、层叠样式表(CSS)等。
通常,客户端设备130的浏览器首先加载主HTML页面,然后随后加载所有引用的和内联脚本。另外,脚本还可由web应用动态加载,例如,使用“eval”语句。
因为动态代码加载最初是由静态加载的代码(或,一旦被加载,其他的动态代码)执行的,当所述网页被下载至所述浏览器,所述安全沙箱145可通过修改所述静态脚本代码来控制执行。对所述代码的修改可用此类方式执行:将来被动态地加载的代码将会在运行时期间被修改且对所述DOM的特定更改可被截取以实施对某些URL加后缀。这允许所述网页保持在所述后缀代理140的控制之下。
在一实施例中,所述后缀代理140和所述安全沙箱145被配置为修改所述经动态加载的代码。所述经加载的代码在所述后缀代理140被接收,所述后缀代理140被配置为分析该代码以确定可能(显式或隐式地)包含、指向或以其他方式引用网络地址(URL)的全部元素,并替换元素和/或将元素包装在加强网络地址后缀的代码内。所述新脚本代码是在所述客户端设备130的浏览器上加载的。在一些实施例中,可使用脚本代码的高速缓存来提高性能。所述沙箱145在运行时期间解析所述包装以实施网络地址的加后缀和去后缀。如上所述,实施网络地址的加后缀包括用预定义的域名向到所述DOM的地址(例如,URL)的写入加作后缀,以及对从所述DOM地址的任何读取去后缀。
作为非限制性示例,在新脚本代码创建期间至少以下DOM元素与属性可被包装:
包含URL的HTML元素(诸如具有属性:“src”、“href”以及“action”的“IFRAME”、“STYLE”、“LINK”、“IMG”、“AUDIO”、“A”、“FORM”、“BASE”以及“SCRIPT)的属性。这些元素的getAttribute以及setAttribute方法也可被用来设置上述属性。
可包含DOM子树(即,更多HTML)的HTML元素的属性。对于此类元素,可用“appendChild”方法来动态添加元素(以及代码)且可用“innerHTML”方法来添加额外代码。
“文档”对象的属性可包含诸如“cookie”和“域”(两者都可包含窗口的源域)之类的URL或主机名。可使用“write”方法来添加元素和代码至所述页面。
XMLHttpRequest对象的“open”方法包含请求URL。“MessageEvent”对象的“origin”属性包含原始主机名。“Window”对象的方法以及属性包含“location”、“postMessage”、“eval”以及“execScripf”。所述“location”将所述帧重定向至另一个URL或确定所述帧的当前位置。所述“postMessage”方法具有原始自变量。所述“eval”与“execScripf”属性被用来动态地加载代码。其他此类元素与属性存在,且它们中的任何一个或全部可被包装。
在一实施例中,DOM元素的包装,以及因此新代码的创建,是使用所述代码的静态挂钩(hooking)执行的。在非限制性注入中,所述静态挂钩包括:处理和提取网页HTML代码中的内联脚本。随后,任何脚本代码被转换成诸如抽象语法树(AST)之类的语法树。在示例性实施例中,所述AST可使用解析器来生成。所述语法树被递归遍历且对包装器的调用被插入在该树的某些节点上以允许挂钩。最后,所述新代码从经修改的节点(具有被插入的类)创建且被发送至所述客户端设备130的浏览器。在一实施例中,所述新创建的代码可被高速缓存以供将来使用。
应该注意的是,被插入的包装器可允许在运行时期间截取DOM改变。所述包装器可被应用以覆盖任何一个或全部可能的DOM访问。作为非限制性示例,所述包装器可被应用(插入)至一些或全部以下语法树(AST)节点:“MemberExpression”、“Identifier”、“AssignmentExpression”以及“CallExpression”。对于MemberExpression节点,任何可能的对DOM对象的对象属性访问、具有非字面密钥的订阅操作以及对具有与“感兴趣的”属性的白名单匹配的属性名称的特定属性(例如,obj.src)的访问,都被包装。在一实施例中,包装器被插入以包装任意适当的对象。因此,一些包装器可能不是必需的。所述安全沙箱145确定包装器是否应该被处理。在大多数情况下,例如,“假肯定(falsepositive)”,所述包装器将决定不做任何事。
对于“Identifier(标识符)”节点,任何对全局Identifier(全局Identifier是窗口DOM对象的属性,例如,“location”)白名单的可能的访问都被包装。应该注意的是,IdentifierAST节点可出现在所述树中的许多不相关的逻辑位置上。其中Identifier表示对全局变量的访问的实例被包装。这是通过检查父节点以及消除全部其他情况而在遍历步骤期间被确定的。
对于AssignmentExpression节点,赋值运算符“=”与“+=”被包装,因为相关的DOM属性可能是字符串(URL)。对先前“标记的”MemberExpressions和Identifier的赋值由专门处理“set”访问的另一个包装器来处理。
对于CallExpression节点,其中先前“标记的”MemberExpressions或Identifier是被调用者的CallExpression由专门处理函数调用的另一个包装器处理。对“eval”的调用存在一个特例,“eval”与一个语句一样运作,但在所述AST中表示为函数调用。
根据各实施例,不同的包装器函数可根据所述语法树的遍历来定义。所述不同的包装器函数在运行时期间不同地运作。所述包装器函数包括被用来包装对MemberExpressions的访问的wrapped_get、wrapped_set以及wrapped_call。函数wrapped_name_get、wrapped_name_set以及wrapped_name_call被用来访问全局Identifier。函数wrapped_eval_param专门处理作为“eval”调用(“eval”调用可影响局部作用域,且因此不可被装饰)的参数被传递的代码。
在一些实施例中,所述安全沙箱145被配置为首先检测所述包装器是否在相关的对象或属性上调用。具体而言,对于“MemberExpression”包装器,属性名称被对照白名单来检查,带下标的对象也是一样。对于“Identifier”包装器,同样参照白名单。对象被确定为某些类型(“Document”、“Window”、HTML元素等等),且还在适用时与全局实例相比较。这些比较与查询可被高效地执行,在许多情况下对性能没有显著的影响。
在一实施例中,包装器调用可使用各种过程中的任何一个来处理,包括,作为非限制性示例:处理经动态加载的代码,其中所述新代码(JavaScript代码)被发送至所述代理的专用RESTAPI端点以转换和高速缓存,如下所述。这可发生在“appendChHd”、“innerHTML”、“eval”、“execScript”以及“write”的包装器中。所述包装器可使用URL或主机名的加后缀或去后缀来处理。最后,假肯定包装器调用以及恢复正常执行也可被检测。
在另一个实施例中,负责处理DOM对URL相关属性或方法的访问的包装器函数处理程序可被分成逻辑组。这些组包括,例如,“getter”、“setter”以及“detector”。所述“getter”处理“get”包装器。这些将把经处理的URL去后缀。若方法(JavaScript类型“函数”)被访问,“decorator”被返回(见下)。所述“setter”通过给被分配的URL加后缀来处理“set”包装器。所述“decorator”处理“call”包装器,“call”包装器对被包装的方法返回匹配的装饰器函数,其将根据被装饰的方法是什么来给URL加后缀或去后缀。
可使用JavaScript“bind”方法将此装饰器绑定至正确对象。在“Identifier”包装器的情况下,所述正确对象是全局对象(在一些情况下,窗口)。在“MemberExpression”包装器的情况下,这是正在被标下标的对象。
以下是代码在包装之前和包装之后的非限制性示例:
为了优化和加速新代码的创建以及此类代码的服务以使在所述客户端设备130上的任何延迟最小化,根据公开的实施例提供一高速缓存机制。所述高速缓存机制在所述后缀代理140处实现且被配置为改进转化阶段的开销。在一实施例中,每个服务器高速缓存被转化代码的全部元素(例如,内联脚本、文件或动态转化请求)。所述条目是以原始代码的密码散列为键的。所述高速缓存跨所述代理的用户共享。这样,仅每个服务器的第一个用户将经历共同加载的脚本的转化阶段的影响。在一实施例中,动态脚本转化REST端点也可被配置为接受客户机侧计算的散列且使用它在高速缓存中执行查询。这可减少所述代理的用户的上传带宽的使用。以此方式,被动态生成的脚本将几乎从不被实际上发送至所述代理(除第一次外)。
被公开的高速缓存机制进一步高速缓存与“Cache-Control”和“Expires”HTTP报头一起被返回的动态转化请求(每散列)的响应,使得该结果将由所述客户端设备130的浏览器高速缓存。以此方式,相同的客户端设备130将不会频繁地查询后缀代理140以寻找相同的被动态生成的脚本。
根据一些实施例,通过为不相关的/假肯定的包装器调用创建经优化的快速路径实现运行时性能的进一步优化(在代码级别)。这是通过编写具有有限JavaScript子集的基础包装器函数以允许所述客户端设备130浏览器的优化(例如,使用浏览器的JIT编译器)来实现的。在另一个实施例中,提供允许剖析和检测具有最高高速缓存命中的代码路径的手动维护界面。这允许从所述后缀代理140高速缓存中的经转化的代码移除某些包装器。
根据各实施例,使用所述安全沙箱145的后缀代理140被配置为实现额外的安全措施以保护所述云应用115以及客户端设备130。根据一个实施例,所述安全措施包括将所述安全沙箱145配置为阻止第三方内容被添加至所述DOM并且从而在所述客户端设备130上呈现。所述第三方内容可包括工具栏、广告、恶意软件等等。根据此实施例,由客户端设备130下载的任何脚本代码被在所述后缀代理140处的沙箱145截取。随后,此代码被分析且由所述脚本代码调用(且后续被附加至DOM)的第三方内容被移除。
在一实施例中,使用所述安全沙箱145的后缀代理140被配置为阻止对在预定义的黑名单中指定的URL的访问,从而阻止第三方内容。当代码被加载至所述客户端设备130时,对该代码的分析或访问第三方内容的任何尝试在运行时中被执行。以上详细讨论了分析所述代码且生成相应的新代码的实施例。
在另一个实施例中,使用所述安全沙箱145的后缀代理140被配置为提供阻止网站访问DOM的某些特征的DOM防火墙和/或在所述客户端设备130上执行某些操作。受限制的动作/特征可包括,例如,阻止网站加载插件或修改浏览器设置,阻挡在所述客户端设备130与其他域之间的所有跨域访问以及阻挡网页和web服务器之间的所有异步请求。在一实施例中,向用户生成应该采取或将要采取操作的警报。用户可能能够允许或拒绝任何阻挡操作。
应该注意的是,当代码被加载至所述客户端设备130时,对该代码的分析或访问第三方内容的任何尝试在运行时中被执行。以上详细讨论了分析所述代码且生成与其相应的新代码的实施例。
在又一个实施例中,所述安全沙箱145被配置为加密包括在被呈现在所述web浏览器上的网页中的字段。这些字段可包括,例如,文本字段、组合框等。根据此实施例,由所述安全沙箱145生成加密密钥。密钥仅为所述客户端设备130和所述安全沙箱145所知,但不为所述云应用115所知。所述加密密钥通过被注入至网页的新代码被提供给客户端设备130。如上所述,在静态网页的分析之后和/或当内联脚本被发送至所述安全沙箱145时,此类代码被从所述安全沙箱145发送至所述浏览器。
使用加密密钥,显示在网页上的任何字段可被加密。数据(字段的内容)的加密在客户端设备130上执行,而解密是由所述安全沙箱145执行的。另外,任何经加密的数据都是由所述安全沙箱145截取的。然后,到DOM中的所有文本插入都被检测到且经加密数据的文本插入被用经解密数据替换(在插入至实际的DOM之前)。作为此操作的结果,由浏览器执行的原始代码(由所述云应用115提供)只能访问经加密数据。若所述代码尝试读取来自DOM的经解密数据,所述安全沙箱145截取此尝试且将所述数据再次加密回来。
应当注意,由于原始代码被置于沙箱内,所述代码的执行不可访问注入的对象和/或包装器函数以及读出所述加密密钥。因此,即使所述云计算平台110被黑客攻击,黑客能访问仅看见加密数据。若黑客为了从所述客户端设备130偷取数据而将代码注入至实况站点内,被注入的代码由所述沙箱145处理,且因此不能访问驻留在所述客户端设备130中的任何数据。
应当理解的是,此处所公开的实施例不限于图1中所例示的特定结构,且其他结构可被同样地使用而不背离所公开的实施例的范围。具体地,所述后缀代理140可留驻在所述云计算平台110、不同的云计算平台或可连接的数据中心中。此外,在一实施例中,可存在如上文所述运行的多个后缀代理140,所述后缀代理140被配置为或者具有一个后缀代理140作为备用装置来在失败情况下取得控制、或者在它们之间共享负载、或者在它们之间分拆函数。此外,在不背离所公开的实施例的范围的情况下,通过受管网络代理120可实现所述后缀代理140的各种函数。
图2示出根据一个实施例例示出给网络地址加后缀的方法的示例性和非限制性流程图200。
在S210中,从云应用发送至客户端设备的网页被接收。所述网页可从在所述客户端设备和所述云应用之间的流量线中的访问代理或任何设备发送。在一实施例中,所述网页是由后缀代理截取的。
在S220中,在被接收的网页中指定的静态网络地址被添加后缀。即,预定义域名后缀被添加至所述网络地址。被添加后缀的一个或多个网络地址是基于URL的预定义列表来确定的。
在S225中,代码(JavaScript代码)片段被注入至所述网页以稍后处理被动态加载至所述网页的脚本、代码或内容文件。此类文件的示例包括,例如,JavaScript、CSS等。被修改的网页被中继至客户端设备的浏览器。
客户机浏览器上的网页的呈现可导致来自服务器(例如,运行云应用的服务器)的内容动态加载至网页。根据各实施例,任何加载此类代码的尝试(例如,通过静态内联脚本)被检测以允许:例如,当网页被下载至浏览器时,所述安全沙箱145控制诸如静态脚本代码之类的动态代码的执行。
在S230中,被动态加载至网页的任何代码被接收。例如,此类代码可从浏览器发送至所述后缀代理140.在一实施例中,被接收的代码被高速缓存以供将来使用。在S240中,被接收的代码被修改。在一实施例中,S240是由所述后缀代理执行的。具体地,所述代码修改可用此类方式执行:将来被动态地加载的代码将会在运行时期间被修改且对所述DOM的特定更改可被截取以实施某些网络地址加后缀。
在一些实施例中,实施网络地址加后缀包括对向所述DOM的地址(URL)的写加预定义的域名作后缀,以及对从所述DOM的地址的任何读取去后缀。
如以上详细讨论的,所述代码修改包括包装某些DOM元素。在又一实施例中,代码的修改使用以上详细讨论的静态挂钩技术来执行。步骤S240的结果将是新代码(此类新代码的示例在上文中提供)。在一实施例中,所述新代码被高速缓存以供将来使用。高速缓存机制的各实施例在上文中描述。
在S250中,所述新代码被发送至客户端设备以在其上执行。应该注意的是,S230和S240对包括在所述网页中的任何动态代码、脚本或文件执行。应该强调的是,步骤S230和S240完全在运行时期间执行。
图3示出根据一个实施例例示出控制对DOM的改变的方法的示例性和非限制性流程图300。
在S310中,从云应用发送至客户端设备的网页被接收。所述网页可从在所述客户端设备和所述云应用之间的流量线中的访问代理或任何设备发送。在一实施例中,所述网页是由后缀代理截取的。
在S320中,代码(例如,JavaScript代码)片段被注入至所述网页以稍后处理被动态加载至所述网页的脚本、代码或内容文件。在一实施例中,所述代码片段维护了在网页的DOM中的加密密钥。所述加密密钥为所述后缀代理所知,但不为所述云应用和/或所述云平台的提供者所知。
在S330中,被修改的网页被发送至所述客户端设备。与所述加密密钥一起被注入的代码片段允许所述客户端设备的用户加密在所述网页中的任何文本字段。
在S340中,被插入至DOM内的经加密的文本字段被截取。经加密文本的识别被执行(例如,通过搜索已知的加密模式)。在S350中,任何被标识的经加密文本字段被解密。然后,在S360中,被标识的经加密文本字段中的经解密的数据被插入至DOM内。
应该注意的是,由所述云应用提供的任何代码(例如,JavaScript代码)不可从DOM读取经解密的数据。还应该注意的是,任何读取在DOM外部的此类数据的尝试被截取(例如,由所述安全沙箱145)。因此,所公开的控制对DOM的改变的方法对所述云应用提供另一层的保护。
图4示出根据一个实施例构造的所述后缀代理104的示例性和非限制性框图。所述后缀代理140可被部署在云计算平台、数据中心中或作为独立的网络设备。所述后缀代理140被配置为基于在上文中更详细地描述的访问策略至少控制和实施对云应用的访问。
所述后缀代理140包括被耦合至存储器415的处理系统410以及安全沙箱模块420。所述处理系统410使用存储在存储器415的指令来控制所述后缀代理140的操作。
所述处理系统410可包括用一个或多个处理器实现的更大的处理系统或可以是其组件。所述一个或多个处理器可用以下任意组合来实现:通用微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、状态机、门控逻辑、分立的硬件组件、专用的硬件有限状态机或可执行信息的计算或其他操纵的任何其他合适的实体。
所述处理系统410还可包括机器可读介质来存储软件。软件应被宽泛地解释为指任何类型的指令,不论被称为软件、固件、中间件、微代码、硬件描述语言或以其他方式。指令可包括代码(例如,以源代码格式、二进制代码格式、可执行代码格式或任何其他合适格式的代码)。所述指令,当由该一个或多个处理器执行时,使所述处理系统410执行本文所描述的各种函数。
所述安全沙箱模块420被配置为监视对DOM的任何改变、阻止对DOM的访问以及给网络地址加后缀或去后缀。如上文详细讨论的,所述安全沙箱模块420的操作在运行时中被执行,即,当网页被呈现在客户端设备130的web浏览器上时。
所述网页由所述云应用115提供。所述安全沙箱模块420的操作在上文中详细地讨论了。在一实施例中,所述安全沙箱模块420可被实现为具有在上文中详细地讨论的各种结构配置的处理单元。
本文所公开的各实施例可被实现为硬件、固件、软件或以上任何组合。此外,所述软件优选地被实现为被有形地体现在程序存储单元或由各部分或某些设备和/或设备的组合所组成的非瞬态计算机可读存储介质上的应用程序。所述应用程序可被上传至包括任何合适的结构的机器,且由其执行。优选地,所述机器被实现在具有诸如一个或多个中央处理器(“CPU”)、存储器以及输入/输出接口之类的硬件的计算机平台上。所述计算机平台也可包括操作系统和微指令代码。本文所描述的各种过程和函数可为微指令代码的一部分或应用程序的一部分,或以上任何组合,所述各种过程和函数可由CPU执行,不论此类计算机或处理器是否被明确地示出。此外,诸如附加数据存储单元或打印单元之类的各种其他外围单元可被连接至计算机平台。此外,非瞬态计算机可读介质是除瞬态传播信号之外的任何计算机可读介质。
应该理解的是,本文中使用诸如“第一”、“第二”等之类的指定而对元素的任何引用通常不限制那些元素的数量和顺序。相反,通常本文使用这些指定作为区分两个或更多个元素或元素实例的方便方法。因此,对第一元素和第二元素的引用不是指仅两个元素可在该处被采用,或第一元素必须以某种方式在第二元素之前。同样,除非以其他方式声明,一组元素包含一个或多个元素。此外,在说明书或权利要求书中使用形式为“A、B或C中至少一个”或“A、B或C中一个或多个”或“由A、B和C组成的组中的至少一个”或“A、B和C中的至少一个”的术语是指“A或B或C或这些元素的任意组合。”例如,此术语可包括A、或B、或C、或A和B、或A和C、或A和B和C、或2A、或2B、或2C等等。
在此所引用的全部示例与条件语言旨在以教学目的协助读者理解在本公开实施例的原理以及发明人对现有技术做出贡献的概念,并且被诠释为不受限于这些具体叙述的示例与条件。此外,本文中叙述原理、方面、和实施例及其具体示例的所有陈述旨在涵盖其结构等同和功能等同两者。另外,意图使这些等同既包括当前所知的等同也包括在将来开发出的等同,即所开发出的执行相同功能的任何元件,而不论其结构如何。
Claims (33)
1.一种用来修改至少一个云应用的网络地址的方法,包括:
接收从所述至少一个云应用发送至客户端设备的网页,其中网页指定在运行时期间被加载至所述客户端设备的至少一个脚本;
将代码片段注入所述网页;
通过被注入的代码片段,接收加载所述至少一个脚本中的每个脚本的尝试;
通过对在所述至少一个脚本中指定的每个网络地址添加预定义网络地址作后缀来修改所述至少一个脚本;以及
将被修改的至少一个脚本发送至所述客户端设备,其中所述被修改的至少一个脚本在所述客户端设备上的运行时执行导致从所述客户端设备至所述云应用的将来请求重定向至被添加后缀的网络地址。
2.如权利要求1所述的方法,其特征在于,进一步包括:
修改在被接收的网页中指定的每个静态网络地址。
3.如权利要求2所述的方法,其特征在于,对静态网络地址加后缀进一步包括:
解析所述网页以标识所述静态网络地址;以及
对在所述至少一个脚本中指定的每个被标识的静态网络地址添加所述预定义网络地址作后缀。
4.如权利要求3所述的方法,其特征在于,要被修改的所述网络地址中的每个网络地址都被包括在网络地址列表中。
5.如权利要求4所述的方法,其特征在于,要被修改的所述网络地址中的每个网络地址至少是统一资源定位符(URL)。
6.如权利要求1所述的方法,其特征在于,修改所述至少一个脚本进一步包括:
解析被请求的内容以标识可能被配置为生成网络地址的可执行指令;以及
包装所述每个被标识的指令以调用替代指令,其中所述替代指令可能被配置为将所述预定义网络地址添加至所述生成的地址作后缀。
7.如权利要求6所述的方法,其特征在于,进一步包括:
在运行时期间,检测不影响所述网络地址的至少一个被包装的指令;以及
忽略被应用在不影响所述网络地址的所述至少一个被包装的指令上的相应的包装器。
8.如权利要求6所述的方法,其特征在于,所述至少一个脚本是以下各项中的任一个:JavaScript代码和层叠样式表(CSS)文件。
9.如权利要求6所述的方法,其特征在于,包装所述每个被标识的指令进一步包括:
将所述至少一个脚本转换成抽象语法树;
递归遍历所述抽象语法树;以及
包装所述抽象语法树的节点以生成经打补丁的抽象语法树。
10.如权利要求6所述的方法,其特征在于,进一步包括:
重建来自所述经打补丁的抽象语法树的所述被修改的至少一个脚本。
11.如权利要求6所述的方法,其特征在于,进一步包括:
高速缓存所述至少一个脚本以及所述被修改的脚本。
12.如权利要求1所述的方法,进一步包括:
在标识加载所述至少一个脚本的请求时确定是否至少一个被修改的脚本已被高速缓存。
将被高速缓存的被修改的脚本发送至所述客户端设备而不从正在执行所述至少一个云应用的远程服务器检索所请求的内容。
13.如权利要求1所述的方法,其特征在于,所述方法被执行而不需要任何对默认客户端设备配置的修改。
14.如权利要求6所述的方法,其特征在于,进一步包括:
在沙箱中执行所述至少一个脚本以监视改变所述网页的DOM的任何尝试;
在运行时给对所述DOM的网络地址的任何写入加后缀;以及
在运行时,给从所述DOM的任何网络地址读取去后缀。
15.如权利要求14所述的方法,其特征在于,进一步包括:
监视对所述DOM的访问;以及
阻止能修改所述DOM的至少一个操作。
16.如权利要求15所述的方法,其特征在于,所述至少一个操作包括以下各项中的任一个:加载插件至所述客户端设备、跨域访问以及在所述网页和所述web服务器之间的异步请求。
17.如权利要求1所述的方法,其特征在于,所述方法由后缀代理设备执行。
18.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质具有在其上存储的指令以使一个或多个处理单元执行根据权利要求1所述的方法。
19.一种用来修改至少一个云应用的网络地址的系统,包括:
处理器;以及
包含指令的存储器,当所述指令由所述处理器执行时将所述系统配置为:
接收从所述至少一个云应用发送至客户端设备的网页,其中网页指定在运行时期间被加载至所述客户端设备的至少一个脚本;
将代码片段注入所述网页;
通过被注入的代码片段,接收加载所述至少一个脚本中的每个脚本的尝试;
通过对在所述至少一个脚本中指定的每个网络地址添加预定义网络地址作后缀来修改所述至少一个脚本;以及
将被修改的至少一个脚本发送至所述客户端设备,其中所述被修改的至少一个脚本在所述客户端设备上的运行时执行导致从所述客户端设备至所述云应用的将来请求重定向至被添加后缀的网络地址。
20.如权利要求19所述的系统,其特征在于,所述系统进一步被配置为:
修改在被接收的网页中指定的每个静态网络地址。
21.如权利要求20所述的系统,其特征在于,所述系统进一步被配置为:
解析所述网页以标识所述静态网络地址;以及
对在所述至少一个脚本中指定的每个被标识的静态网络地址添加所述预定义网络地址作后缀。
22.如权利要求21所述的系统,其特征在于,要被修改的所述网络地址中的每个网络地址都被包括在网络地址列表中。
23.如权利要求22所述的系统,其特征在于,要被修改的所述网络地址中的每个网络地址至少是统一资源定位符(URL)。
24.如权利要求19所述的系统,其特征在于,所述系统进一步被配置为:解析被请求的内容以标识可能被配置为生成网络地址的可执行指令;以及
包装所述每个被标识的指令以调用替代指令,其中所述替代指令可能被配置为将所述预定义网络地址添加至所述生成的地址作后缀。
25.如权利要求24所述的系统,其特征在于,所述系统进一步被配置为:
在运行时期间,检测不影响所述网络地址的至少一个被包装的指令;以及
忽略被应用在不影响所述网络地址的所述至少一个被包装的指令上的相应的包装器。
26.如权利要求24所述的系统,其特征在于,所述至少一个脚本是以下各项中的任一个:JavaScript代码和层叠样式表(CSS)文件。
27.如权利要求24所述的系统,其特征在于,所述系统进一步被配置为:
将所述至少一个脚本转换成抽象语法树;
递归遍历所述抽象语法树;以及
包装所述抽象语法树的节点以生成经打补丁的抽象语法树。
28.如权利要求24所述的系统,其特征在于,所述系统进一步被配置为:
重建来自所述经打补丁的抽象语法树的所述被修改的至少一个脚本。
29.如权利要求24所述的系统,其特征在于,所述系统进一步被配置为:
高速缓存所述至少一个脚本以及所述被修改的脚本。
30.如权利要求19所述的系统,其特征在于,所述系统进一步被配置为:
在标识加载所述至少一个脚本的请求时确定是否至少一个被修改的脚本已被高速缓存。
将被高速缓存的被修改的脚本发送至所述客户端设备而不从正在执行所述至少一个云应用的远程服务器检索所请求的内容。
31.如权利要求24所述的系统,其特征在于,所述系统进一步被配置为:
在沙箱中执行所述至少一个脚本以监视改变所述网页的DOM的任何尝试;
在运行时给对所述DOM的网络地址的任何写入加后缀;以及
在运行时,给从所述DOM的任何网络地址读取去后缀。
32.如权利要求31所述的系统,其特征在于,所述系统进一步被配置为:
监视对所述DOM的访问;以及
阻止能修改所述DOM的至少一个操作。
33.如权利要求32所述的系统,其特征在于,所述至少一个操作包括以下各项中的任一个:加载插件至所述客户端设备、跨域访问以及在所述网页和所述web服务器之间的异步请求。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462049473P | 2014-09-12 | 2014-09-12 | |
US62/049,473 | 2014-09-12 | ||
US14/539,980 | 2014-11-12 | ||
US14/539,980 US9438565B2 (en) | 2013-11-11 | 2014-11-12 | Cloud service security broker and proxy |
PCT/US2015/049606 WO2016040753A1 (en) | 2014-09-12 | 2015-09-11 | A cloud suffix proxy and methods thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105793826A true CN105793826A (zh) | 2016-07-20 |
Family
ID=55459596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580002873.9A Pending CN105793826A (zh) | 2014-09-12 | 2015-09-11 | 云后缀代理及其方法 |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP3069251A1 (zh) |
JP (1) | JP2017532615A (zh) |
CN (1) | CN105793826A (zh) |
AU (1) | AU2015314899A1 (zh) |
CA (1) | CA2931517A1 (zh) |
IL (1) | IL245266A0 (zh) |
PH (1) | PH12016500944A1 (zh) |
WO (1) | WO2016040753A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804916A (zh) * | 2017-12-19 | 2018-11-13 | 哈尔滨安天科技股份有限公司 | 恶意文件的检测方法、装置、电子设备及存储介质 |
CN109325192A (zh) * | 2018-10-11 | 2019-02-12 | 网宿科技股份有限公司 | 一种广告防屏蔽的方法和装置 |
CN113391855A (zh) * | 2021-06-18 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种信息处理方法及装置、存储介质 |
CN113966604A (zh) * | 2019-06-21 | 2022-01-21 | 微软技术许可有限责任公司 | web应用封装器 |
CN114731291A (zh) * | 2019-11-25 | 2022-07-08 | 微软技术许可有限责任公司 | 安全服务 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3413192A1 (en) * | 2017-06-08 | 2018-12-12 | HOB GmbH & Co. KG | Internet-based communication system |
US12095732B2 (en) * | 2021-06-30 | 2024-09-17 | Sony Group Corporation | Anti-piracy control based on blacklisting function |
CN113572833B (zh) * | 2021-07-21 | 2024-05-14 | 北京百度网讯科技有限公司 | 一种云手机的维护方法、装置、电子设备和存储介质 |
CN114816558B (zh) * | 2022-03-07 | 2023-06-30 | 深圳市九州安域科技有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397246B1 (en) * | 1998-11-13 | 2002-05-28 | International Business Machines Corporation | Method and system for processing document requests in a network system |
US20070016949A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Browser Protection Module |
US20100146260A1 (en) * | 2005-05-02 | 2010-06-10 | Barracuda Networks, Inc. | Tandem encryption connections to provide network traffic security method and apparatus |
US20120030294A1 (en) * | 2010-07-28 | 2012-02-02 | Openwave Systems Inc. | Method and system for link-triggered link-translating proxying |
WO2013091709A1 (en) * | 2011-12-22 | 2013-06-27 | Fundació Privada Barcelona Digital Centre Tecnologic | Method and apparatus for real-time dynamic transformation of the code of a web document |
US20130276136A1 (en) * | 2010-12-30 | 2013-10-17 | Ensighten, Inc. | Online Privacy Management |
US20130311863A1 (en) * | 2012-05-17 | 2013-11-21 | Oracle International Corporation | System for re-writing dynamically generated uniform resource locators in proxied hyper text markup language content |
-
2015
- 2015-09-11 EP EP15839443.7A patent/EP3069251A1/en not_active Withdrawn
- 2015-09-11 CA CA2931517A patent/CA2931517A1/en not_active Abandoned
- 2015-09-11 WO PCT/US2015/049606 patent/WO2016040753A1/en active Application Filing
- 2015-09-11 AU AU2015314899A patent/AU2015314899A1/en not_active Abandoned
- 2015-09-11 JP JP2016539311A patent/JP2017532615A/ja active Pending
- 2015-09-11 CN CN201580002873.9A patent/CN105793826A/zh active Pending
-
2016
- 2016-04-21 IL IL245266A patent/IL245266A0/en unknown
- 2016-05-20 PH PH12016500944A patent/PH12016500944A1/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397246B1 (en) * | 1998-11-13 | 2002-05-28 | International Business Machines Corporation | Method and system for processing document requests in a network system |
US20100146260A1 (en) * | 2005-05-02 | 2010-06-10 | Barracuda Networks, Inc. | Tandem encryption connections to provide network traffic security method and apparatus |
US20070016949A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Browser Protection Module |
US20120030294A1 (en) * | 2010-07-28 | 2012-02-02 | Openwave Systems Inc. | Method and system for link-triggered link-translating proxying |
US20130276136A1 (en) * | 2010-12-30 | 2013-10-17 | Ensighten, Inc. | Online Privacy Management |
WO2013091709A1 (en) * | 2011-12-22 | 2013-06-27 | Fundació Privada Barcelona Digital Centre Tecnologic | Method and apparatus for real-time dynamic transformation of the code of a web document |
US20130311863A1 (en) * | 2012-05-17 | 2013-11-21 | Oracle International Corporation | System for re-writing dynamically generated uniform resource locators in proxied hyper text markup language content |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804916A (zh) * | 2017-12-19 | 2018-11-13 | 哈尔滨安天科技股份有限公司 | 恶意文件的检测方法、装置、电子设备及存储介质 |
CN109325192A (zh) * | 2018-10-11 | 2019-02-12 | 网宿科技股份有限公司 | 一种广告防屏蔽的方法和装置 |
CN113966604A (zh) * | 2019-06-21 | 2022-01-21 | 微软技术许可有限责任公司 | web应用封装器 |
CN114731291A (zh) * | 2019-11-25 | 2022-07-08 | 微软技术许可有限责任公司 | 安全服务 |
CN113391855A (zh) * | 2021-06-18 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种信息处理方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
PH12016500944A1 (en) | 2016-07-11 |
CA2931517A1 (en) | 2016-03-17 |
IL245266A0 (en) | 2016-06-30 |
AU2015314899A1 (en) | 2016-05-19 |
EP3069251A1 (en) | 2016-09-21 |
JP2017532615A (ja) | 2017-11-02 |
WO2016040753A1 (en) | 2016-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642600B2 (en) | Cloud suffix proxy and a method thereof | |
CN105793826A (zh) | 云后缀代理及其方法 | |
US8819817B2 (en) | Methods and apparatus for blocking usage tracking | |
US11720669B1 (en) | Interactive shell event detection | |
EP3349137A1 (en) | Client-side attack detection in web applications | |
Fass et al. | Doublex: Statically detecting vulnerable data flows in browser extensions at scale | |
US11194914B2 (en) | Method and apparatus to detect security vulnerabilities in a web application | |
Meyerovich et al. | Object views: Fine-grained sharing in browsers | |
CN103617395A (zh) | 一种基于云安全拦截广告程序的方法、装置和系统 | |
US10831892B2 (en) | Web browser script monitoring | |
GB2496107A (en) | Preventing unwanted code execution by reconfiguring a scripting language and its associated environment | |
US8904492B2 (en) | Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus | |
US20180205705A1 (en) | Network request proxy system and method | |
WO2014063521A1 (zh) | 一种企业内网访问控制方法和系统 | |
Weissbacher et al. | {ZigZag}: Automatically Hardening Web Applications Against Client-side Validation Vulnerabilities | |
CN109325192B (zh) | 一种广告防屏蔽的方法和装置 | |
WO2023023127A1 (en) | System and method for controlling js scripts access to dom/apis | |
CN104348838A (zh) | 一种文档管理系统和方法 | |
US9251362B2 (en) | Medium for storing control program, client apparatus, and control method for client apparatus | |
KR101688390B1 (ko) | 웹 사이트의 악성코드 탐지 및 차단 시스템 | |
Somé et al. | Control what you include! Server-side protection against third party web tracking | |
Kerschbaumer et al. | Towards precise and efficient information flow control in web browsers | |
CN114756833A (zh) | 代码混淆方法、装置、设备、介质以及程序产品 | |
De Groef et al. | Better security and privacy for web browsers: A survey of techniques, and a new implementation | |
US11170098B1 (en) | System, method, and medium for protecting a computer browser from third-party computer code interference |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160720 |