CN101662462A - 提供针对跨域交互的运行时脆弱性防护的方法和系统 - Google Patents
提供针对跨域交互的运行时脆弱性防护的方法和系统 Download PDFInfo
- Publication number
- CN101662462A CN101662462A CN200810212617.4A CN200810212617A CN101662462A CN 101662462 A CN101662462 A CN 101662462A CN 200810212617 A CN200810212617 A CN 200810212617A CN 101662462 A CN101662462 A CN 101662462A
- Authority
- CN
- China
- Prior art keywords
- iframe
- party server
- content
- web
- domain
- 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.)
- Granted
Links
Images
Classifications
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
提供了一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法和系统。所述方法包括:由Web应用创建第一iFrame对象和第二iFrame对象,其中所述第一和第二iFrame对象同属于Web应用所在的低级域;由所述第一iFrame对象创建一个对象,并使所述第二iFrame共享所述所创建的对象;将所述第二iFrame对象所属的域提升为上级域;在所述共享对象中,由所述第二iFrame对象创建一个源访问功能,用于向第三方服务器提交访问其上的内容的请求;以及在所述共享对象中,由所述第一iFrame对象创建一个净化功能,用于对由所述第二iFrame对象从第三方服务器接收的响应进行净化。
Description
技术领域
本发明一般地涉及Web应用,并且具体而言涉及一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法和系统。
背景技术
Web应用是一种基于Web的应用,指的是用户界面驻留在Web浏览器中的任何应用程序,它是一些Web网页和用来完成某些任务的其它资源的集合。Web应用是典型的客户机/服务器体系结构的产物,其能够通过网络使得客户机和服务器进行通信。常见的留言版、聊天室和论坛(BBS)等,都是Web应用。不过这些应用相对比较简单,而Web应用的真正核心主要是对数据进行处理。
近来,随着SaaS(Software-as-a-Service,软件即服务)应用的发展,经常需要将来自多个源(它们处于不同域)的内容合并为集成的内容。SaaS应用是一种Web应用,它是随着因特网技术的发展和应用软件的成熟而逐渐发展的一种完全创新的软件应用模式。它是一种通过因特网提供软件的模式,供应商将应用软件统一部署在自己的服务器上。用户可以根据自己实际需求,通过因特网向供应商定购所需的应用软件服务,按定购的服务多少和时间长短向供应商支付费用,并通过因特网获得供应商提供的服务。用户不用购买软件,而是向供应商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,而供应商会全权管理和维护软件。供应商在向客户提供因特网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。
在类似于SaaS应用的Web应用的上下文中,常常需要将来自多个源的内容合并在一起。例如,在销售人员自动管理(SFA,Sales ForceAutomation)应用中,可能需要将来自另一服务器的联系人管理信息集成进来。此时需要进行跨域的内容交互。在实践中,由于SaaS应用常常需要合并来自处于不同域的其它源的数据,其不得不在安全性和功能性之间做出选择。在一些传统方案中,对于安全性的考虑通常涉及以下几种方案,但它们均具有各自的局限性。
·输入验证。输入验证主要基于预先定义的模式来过滤用户输入值。但是,如果用户直接从第三方服务器获得内容,则输入验证功能将被绕开,从而无法防止来自该内容的潜在的、恶意的攻击。
·浏览器端插件。浏览器端插件(诸如Flash插件)可以支持在各个域之间的通信,并提供多种跨域能力。但是,出于安全性、隐私性或者兼容性等等的原因,一些用户不愿意安装浏览器端插件。
·服务器端代理。服务器端代理过滤来自第三方服务器的数据,并使得所述数据对于客户端呈现为同源数据。由此,浏览器可以首先连接到代理以获取第三方内容。该方案的缺点在于,增加了通过代理连接到第三方服务器的等待时间。
·片段标识符(fragment identifier)消息传送。一些方案可以采用片段标识符来实现跨域通信。其将#message附加到URL(统一资源定位符)之后用于传输消息。该方案的缺点在于,当用户按下浏览器中的“后退”按钮时将会中断该通信。并且,所传送的消息具有长度限制。
现今,在很多Web应用中,使用基于AJAX的富Web应用(Rich WebApplication)进行跨域交互。术语AJAX是“Asynchronous(异步)JavaScript+XML”的简写。AJAX的核心JavaScript对象XmlHttpRequest支持异步请求。简而言之,XmlHttpRequest对象允许客户端的JavaScript脚本向服务器提出请求并处理响应,而不用在浏览器中重新刷新页面,并且不会阻塞用户。对XmlHttpRequest对象的详细定义与描述请参见W3C(万维网联盟)的规范(http://www.w3.org/TR/XMLHttpRequest)。然而,出于安全性的考虑,基于AJAX的富Web应用只能访问应用所在的当前域中的资源,而不能实现跨域访问,这也被称为同源限制(same originconstraint)的策略。例如,站点domain1.com中的AJAX只能访问本站点内的资源,而不能跨域访问站点domain2.com中的资源。然而,在SaaS应用中,属于某一域的Web应用有时需要对属于另一域的服务器做出AJAX请求,以便调用该服务器中的服务或资源。上述的跨域访问受到现有的XmlHttpRequest实现的限制。
富Web应用还可以提供一种新服务,其返回JSON(JavaScript ObjectNotation,JavaScript对象表示法)格式而不是XML格式的响应。JSON是一种轻量级的计算机数据交换格式。它是一种用于表示简单数据结构和关联数组(对象)的基于文本的、人类可读的格式。JSON格式常常被用于在网络连接上传输格式化的数据。JSON可以通过以下两种结构构建:“名称/值”对的集合,它可以被理解为对象(object)、纪录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、有键列表(keyedlist)、或者关联数组(associative array);或者值的有序列表。在大部分语言中,它被理解为数组(array)。这使得同一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
事实上,如果使用动态脚本标签方案(dynamic script tag approach)来做出Web服务请求,并且指定一种JavaScript回叫(callback)功能,则可以实现以无缝、跨站方式对Web服务进行自由访问。出于此目的,JSONP(JSON with padding,具有填充符的JSON)被提出作为从外部域获取JSON的一种标准,其中指定了回叫功能作为呼叫本身的输入变量。但是,JSONP在从第三方服务检索数据时具有安全问题,不能阻止第三方数据的恶意攻击。
例如参见图1,图1示出了Web应用通过JSONP进行跨域交互的弱点攻击的示例图。如图1所示,托管服务器100可以与客户端浏览器110进行通信,而客户端浏览器110可以与第三方服务器120进行通信,其中托管服务器100托管用于在客户端浏览器110上执行的Web应用。由此,托管服务器100通过客户端浏览器110向第三方服务器120提交用于访问第三方内容的请求130,在请求130中,指定并定义了回叫功能(getConInfo),用于把第三方服务器120提供的信息呈现给用户,所述信息在此示例中例如是联系人信息。该回叫功能指的是由第三方服务器120可以在返回的响应140中使用的功能。在正常的情况下,第三方服务器120使用所指定的回叫功能(getConInfo)将联系人信息以JSON格式提供给用户。然后浏览器110可以接收并读取JSON格式的该信息,并以回叫功能中指定的方式将信息呈现给用户。
然而,在实践中,该方案存在易于遭受恶意攻击的脆弱性。在一种情形中,如图1中的响应140的上半部分所示,恶意攻击者可以在正常的联系人信息后面附加恶意代码,其位于<script>和</script>之间。以此方式,客户端浏览器110在接收到响应信息并执行回叫功能时,该恶意代码也会被一同执行,从而使得客户端具有风险,例如,客户端的敏感信息可能被泄露,或者客户端被植入恶意脚本等等。在另外一种情形中,如图1中的响应140的下半部分所示,恶意攻击者可以在响应信息中重新定义一个新的功能,其具有与回叫功能相同的名称(getConInfo),并在该新功能中包含恶意代码,其位于<script>和</script>之间。以此方式,客户端浏览器110在接收到信息并执行回叫功能时,实际被执行的不是客户端定义的回叫功能,而是恶意攻击者定义的新功能,从而使得客户端具有同样的风险。
由此可见,现有技术的各个方案存在多种缺点,它们无法同时满足安全性和功能性的需求。因此,为了使得Web应用、尤其是SaaS应用能够与其它域进行交互以便获取以及并入来自其它域的数据,同时兼顾足够的安全性,对于本领域技术人员来说,存在对于一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法和系统的需要。
发明内容
在本发明的第一方面中,提出了一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法,所述方法包括:
由Web应用创建第一iFrame对象和第二iFrame对象,其中所述第一和第二iFrame对象同属于Web应用所在的低级域;
由所述第一iFrame对象创建一个对象,并使所述第二iFrame共享所述所创建的对象;
将所述第二iFrame对象所属的域提升为上级域;
在所述共享对象中,由所述第二iFrame对象创建一个源访问功能,用于向第三方服务器提交访问其上的内容的请求;以及
在所述共享对象中,由所述第一iFrame对象创建一个净化(sanitize)功能,用于对由所述第二iFrame对象从第三方服务器接收的响应进行净化。
在本发明的第二方面中,提出了一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的系统,所述系统包括:
用于由Web应用创建第一iFrame对象和第二iFrame对象的装置,其中所述第一和第二iFrame对象同属于Web应用所在的低级域;
用于由所述第一iFrame对象创建一个对象,并使所述第二iFrame共享所述所创建的对象的装置;
用于将所述第二iFrame所属的域提升为上级域的装置;
用于在所述共享对象中,由所述第二iFrame对象创建一个源访问功能的装置,所述源访问功能用于向第三方服务器提交访问其上的内容的请求;以及
用于在所述共享对象中,由所述第一iFrame对象创建一个净化功能的装置,所述净化功能用于对由所述第二iFrame对象从第三方服务器接收的响应进行净化。
根据本发明的方法和系统,避免了大范围重写后台代码,从而,在保持了系统对于Web应用的跨域交互的功能性需求的同时,还增强了对于系统的脆弱性防护,并可以提供透明的运行时安全防护以及即时防护,而不用改变后端应用逻辑。并且,当本发明的方法和系统被实现为Web应用防火墙(WAF)时,既不需要安装客户端的浏览器插件,也不需要服务器端的代理,从而减少了请求等待时间,以及增加了系统的整个工作效率。
附图说明
在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而,通过参考以下结合附图的说明性实施例的详细描述,将最好地理解本发明本身以及其优选使用模式、另外的目的和优点,在附图中:
图1示出了Web应用通过JSONP进行跨域交互的弱点攻击的示例图;
图2示出了根据本发明一个实施例的一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法的示例性流程图;
图3示出了初始登录和准备阶段的示例性流程图;
图4示出了图3的初始登录和准备阶段完成之后的页面示意图;
图5示出了在图4的页面示意图中执行跨域交互的具体实现方式;以及
图6示出了根据本发明一个实施例的一种为Web应用提供针对跨域交互的运行时脆弱性防护的系统的示意性框图。
需要注意,在全体附图中,相同或相似的标号指代的是相同或相似的单元或组件。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实现方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多实现方式所特定的决定,以便实现开发人员的具体目标,例如符合与系统及业务相关的那些限制条件,其中,这些限制条件会随着实施方式的不同而改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于这个公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
此外,还需要说明的一点是,为了避免因不必要的细节而混淆了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。
在以下对本发明的描述中,本发明的方法可以通过Web应用防火墙(WAF)来实现,该Web应用防火墙可以是硬件组件,其例如可以作为服务器和客户端浏览器之间的通信中介,即,服务器和客户端之间进行的任意通信都将通过该WAF。这样,既不需要安装客户端的浏览器插件,也不需要服务器端的代理,从而减少了请求等待时间,以及增加了系统的整个工作效率。当然,本领域技术人员可以理解,在本发明的其它实施例中,本发明的方法还可以被实现为客户端插件或者服务器端的代理。
以下是对本发明及其实施例的详细介绍。首先参见图2,图2示出了根据本发明一个实施例的一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法的示例性流程图。如图2所示,所述方法开始于框200,并进行到框205。在框205,执行初始登录和准备阶段的各个步骤。该初始登录和准备阶段可以是响应于客户端向服务器提出的请求而执行。作为具体说明,以下结合图3示出了初始登录和准备阶段的示例性流程图。
如图3所示,所述初始登录和准备阶段开始于框300,并进行到框305。首先在框305,在服务器发送到客户端的响应中插入用于初始化的JavaScript逻辑。如上所述,该步骤可以由WAF来执行。在框310,由客户端接收经修改的响应,从而客户端可以执行响应中插入的JavaScript逻辑。如此,根据所述逻辑,在框315,在一个低级域的页面中创建第一iFrame对象和第二iFrame对象,该低级域是用于实际获取并向用户呈现第三方服务器的内容的域,其例如可以是cc.bb.aa.com。在此时,第一iFrame对象和第二iFrame对象均属于所述低级域。为了更好地理解图3所述的初始登录和准备阶段,图4示出了图3的初始登录和准备阶段完成之后的页面示意图。如图4所示,框410表示初始的浏览器页面,其所属的域是cc.bb.aa.com,在其中创建了第一iFrame对象420和第二iFrame对象430。
术语“iFrame”也可以被称作嵌入式元素或者嵌入式框架,它可以把一个网页的框架和内容嵌入到现有的HTML网页中,作为现有HTML网页的一个子窗口。iFrame可以嵌入到HTML网页中的任意部分。它的一大特征是,iFrame所引用的HTML文件不是与该iFrame所嵌入的HTML文件相互独立显示,而是可以直接嵌入在后一HTML文件中。但是这两个HTML文件是相互独立的,二者都被看成是完整的文件,而不是将其中一个看成另一个的一部分。另外,iFrame还可以多次在不同页面内显示同一内容,而不必重写该内容。通过iFrame对象所在页面的对象模型,可以访问iFrame对象的属性,但不能访问其内容,从而确保了安全性。所创建的iFrame可以被用于使能Web网页的跨域交互。iFrame的大小是可以调整的,因此,iFrame可以是不可见的,以至于用户甚至不会在UI中看到它。
在框320,由第一iFrame对象420创建一个JavaScript对象O 440。此对象O 440用于在其中创建用于提交访问第三方服务器的内容的请求以及净化该内容的功能。这些功能的具体工作方式将在下文中说明。在框325,使得第二iFrame对象430与第一iFrame对象420共享所创建的对象O 440。此时两个iFrame对象均可以访问该共享对象O 440,并且该对象O 440具有与其所在页相同的安全许可。
在框330,提升第二iFrame对象430所属的域。例如,将第二iFrame对象430所属的域提升为相对于初始的低级域的一个上级域,例如bb.aa.com。根据安全属性的规范,对于iFrame对象所属的域进行提升只能使其提升为上级域。因此,在可替换实施例中,该低级域也可以被提升至aa.com。该上级域可以被看成是一个虚拟域,即,在该上级域中,不包含任何有用数据(敏感数据)。而对于该上级域的有效访问的范围仅限于该第二iFrame对象430。这样,可以将第二iFrame对象430所在的域独立出来,从而可以作为中介用于接收并处理来自第三方服务器的内容,并且如果在第三方内容中存在潜在的恶意代码,该恶意代码仅可以在该上级域中起作用,而无法访问初始的低级域,从而位于低级域中的敏感信息不会被窃取,并且低级域中不会被植入恶意代码。
在框335,由第一iFrame对象420在共享对象O 440中创建一个净化功能450,例如function sanitization(),用于净化来自第三方服务器的内容。在框340,由第二iFrame对象430在共享对象O 440中创建一个源访问功能460,例如function createsrc(),用于向第三方服务器提交访问其上的内容的请求。由于这两个功能都在对象O 440中创建,因此它们均继承了该对象O 440所在页的安全许可。由于第一和第二iFrame对象共享所述对象O 440,因此第一iFrame对象420和第二iFrame对象430均可以访问对象O 440中的源访问功能和净化功能。而由于同源限制的原因,源访问功能460不能反向访问第一iFrame对象420,以及净化功能450不能反向访问第二iFrame对象430。
框335和框340可以被先后执行,或者同时执行。接着所述初始登录和准备阶段完成,并在框345返回。
现在返回图2,在框205的初始登录和准备阶段完成之后,客户端可以安全地请求并处理第三方服务器的内容。为了更好地理解图2所述的方法,图5示出了在图4的页面示意图中执行跨域交互的具体实现方式。
首先在框210,由第一iFrame对象420访问在共享对象O 440中创建的源访问功能460,并将用于访问第三方服务器120的内容的请求传送到源访问功能460(如图5中箭头a所示)。在框215,源访问功能460向第三方服务器120提交用于访问其上的内容的请求(如图5中箭头b所示)。在框220,第三方服务器120响应于该请求,将所需内容作为响应以JSON格式发送到第二iFrame对象430(如图5中箭头c所示)。如前所述,由于第二iFrame对象430属于已提升的分离域(例如bb.aa.com),并且其中没有包含任何敏感信息,因此,即使在来自第三方服务器120的响应中含有任何恶意代码,它们也无法访问其它域(例如低级域cc.bb.aa.com),从而无法获取处于其它域的敏感信息,也无法在其它域中植入恶意代码。由此,如上文图1的响应140中示出的两种恶意攻击方式(嵌入恶意脚本代码、重新定义同名新功能来覆盖原有回叫功能)均无法起作用。
在框225,由第二iFrame对象430将从第三方服务器120所接收的响应发送到在共享对象O 440中创建的净化功能450(如图5中箭头d所示)。在框230,该净化功能450可以遍历整个响应,以便过滤其中的潜在恶意代码。例如,该净化功能450可以访问预先存储的恶意代码列表,并将响应内容中可能嵌入的相应的恶意代码删除。应该了解,本领域技术人员已知的任意其它信息过滤方式都是可能的,它们均落入本发明的范围之中。
之后在框235,由净化功能450将过滤后的响应发送到第一iFrame对象420(如图5中箭头e所示)。由于净化功能450是由第一iFrame对象420创建的,因此其可以与第一iFrame对象420进行通信。在经过对响应内容的净化之后,第一iFrame对象420就可以自由地使用来自第三方服务器120的内容,而不用继续考虑安全性的问题。所述方法在框240结束。
如上所述,根据本发明的方法,避免了大范围重写后台代码,从而,在保持了系统对于Web应用的跨域交互的功能性需求的同时,还增强了对于系统的脆弱性防护,并可以提供透明的运行时安全防护以及即时防护,而不用改变后端应用逻辑。
在此需要注意,尽管在本发明的上下文中采用了仅执行一次域提升的方案,实际上,本领域技术人员可以容易地想到,为了进一步提高安全性,可以执行不止一次的域提升,例如,创建三个iFrame对象,其中第一iFrame对象所属的初始域是cc.bb.aa.com,第二iFrame对象所属的域被提升为bb.aa.com,而第三iFrame对象所属的域被提升为aa.com,其余步骤与上述的步骤相类似,在此不再重复描述。经过这种多次域提升,本发明的方案将具有更高的安全性。
以上是对于根据本发明一个实施例的一种为Web应用提供针对跨域交互的运行时脆弱性防护的方法的详细描述,在同一发明构思下,还参考图6提出了根据本发明一个实施例的一种为Web应用提供针对跨域交互的运行时脆弱性防护的系统600。
在所述系统600中,Web应用需要进行跨域交互。如图6所示,所述系统600可以包括:iFrame控制装置610、对象控制装置670。具体而言,在所述系统600中,所述iFrame控制装置610可以包括:iFrame创建装置615、对象共享装置620、域提升装置625、功能创建装置630、以及iFrame交互装置635。所述iFrame创建装置615用于在网页中创建第一iFrame对象650和第二iFrame对象655,其中所述两个iFrame对象属于所在网页的低级域,该低级域是用于实际获取并向用户呈现第三方服务器的内容的域。对象共享装置620用于创建一个对象O 660,并使得该对象可以由第二iFrame对象655共享。所述域提升装置625用于将所述第二iFrame对象655所在的低级域提升为上级域。其中所述上级域是虚拟域,该虚拟域中不包含任何有用数据。所述功能创建装置630用于由所述第一iFrame对象650在所述共享对象O 670中创建一个源访问功能,所述源访问功能用于向第三方服务器提交访问其上的内容的请求。所述功能创建装置630还用于由所述第二iFrame对象655在所述共享对象O 660中创建一个净化功能,所述净化功能用于对由所述第二iFrame对象655从第三方服务器接收的响应进行净化。所述iFrame交互装置635用于控制所述第一iFrame对象650和第二iFrame对象655与共享对象O 660中的源访问功能和净化功能、以及第三方服务器进行的交互。所述交互可以包括:由所述第一iFrame对象650将用于访问第三方服务器的内容的请求传送到所述对象O 660中的源访问功能;由所述第二iFrame对象655从第三方服务器接收所需内容;由所述第二iFrame对象655将所接收的内容发送到所述对象O 660中的净化功能;以及由所述第一iFrame对象650从所述对象O 660中的净化功能接收过滤后的所述内容。
在所述系统600中,对象控制装置670可以包括:功能交互装置675、功能控制装置680。所述功能交互装置675用于控制共享对象O 660中的源访问功能和净化功能与所述第一iFrame对象650和第二iFrame对象655、以及第三方服务器进行的交互。所述交互可以包括:由所述源访问功能从所述第一iFrame对象650接收用于访问第三方服务器的内容的请求,并将该请求提交到第三方服务器;由所述净化功能从所述第二iFrame对象655接收来自第三方服务器的内容,并将过滤后的内容发送到所述第一iFrame对象650。所述功能控制装置680用于控制在所述共享对象O 660中创建的功能的操作。所述操作可以包括:由所述净化功能过滤从所述第二iFrame对象655接收的第三方服务器的内容。
所述系统600的操作可以通过在由Web应用从托管服务器接收的初始响应中插入JavaScript逻辑来激活。此外,所述系统600可以被实现为Web应用防火墙,或者被实现为客户端插件或者服务器端的代理。
以上详细描述了根据本发明一个实施例的一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法和系统。如本领域普通技术人员可以了解的,本发明可以体现为方法、系统和/或计算机程序产品。因此,本发明可以呈现为完全硬件实施形式、完全软件实施形式或者软件和硬件组合实施形式。此外,本发明可以被呈现为在机器可读媒体上包括的计算机程序产品,机器可读媒体上存储了用于对计算机系统进行编程以执行根据本发明的过程的机器可执行程序指令。这里所使用的术语“机器可读媒体”包括向计算机系统提供用于执行的指令的任意媒体。这种媒体可以采用多种形式,包括但是不局限于:非易失性媒体、易失性媒体和传输媒体。非易失性媒体的常见形式例如包括软盘、软磁盘、硬盘、磁带或者任何其它磁媒体、光盘ROM(CD-ROM)或者任何其它光媒体、打孔卡或者任何其它带有孔图案的物理媒体、可编程ROM(PROM)、可擦写PROM(EPROM)、电EPROM(EEPROM)、闪速存储器、任何其它存储芯片或者盒式磁带(cartridge)、或者计算机系统可以读取并适合存储指令的任何其它媒体。
适于存储和/或执行程序代码的数据处理系统将包括:直接地或通过系统总线间接地耦合于存储器单元的至少一个处理器。存储器单元可以包括在程序代码的实际执行期间使用的局部存储器、海量存储装置、以及高速缓冲存储器,该高速缓冲存储器提供了至少某种程序代码的临时存储以便减少在执行期间必须从海量存储装置检索代码的次数。
此外,可以理解,方框图和/或流程图中的每个方框以及方框图和流程图中的一些方框的组合可以用一些计算机程序指令实现。这些计算机程序指令可以提供给一通用计算机、专用计算机或其它可编程数据处理设备的处理器以产生一机器,使得这些指令通过计算机或其它可编程数据处理设备的处理器的执行创建用于实现在方框图和/或流程图内或者方框内所指定的功能的装置。
尽管已经参考优选实施例具体地示出并描述了本发明,但其不是为了以公开的形式穷举或限制本发明。对于本领域的普通技术人员,可以在形式上和细节上进行各种改变而不会背离本发明的精神和范围。选择并描述了实施例是为了最好地解释本发明的原理和实际的应用,以及为了使本领域的其它普通技术人员能够理解对于各种实施例的本发明,所述实施例具有适合于预期的具体使用的各种修改。
Claims (14)
1.一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的方法,所述方法包括:
由Web应用创建第一iFrame对象和第二iFrame对象,其中所述第一和第二iFrame对象同属于Web应用所在的低级域;
由所述第一iFrame对象创建一个对象,并使所述第二iFrame共享所述所创建的对象;
将所述第二iFrame对象所属的域提升为上级域;
在所述共享对象中,由所述第二iFrame对象创建一个源访问功能,用于向第三方服务器提交访问其上的内容的请求;以及
在所述共享对象中,由所述第一iFrame对象创建一个净化功能,用于对由所述第二iFrame对象从第三方服务器接收的响应进行净化。
2.根据权利要求1所述的方法,进一步包括:
由所述第一iFrame对象将用于访问第三方服务器的内容的请求传送到所述源访问功能;
由所述源访问功能向第三方服务器提交所述请求;
由所述第二iFrame对象从第三方服务器接收所需内容;
由所述净化功能从所述第二iFrame对象接收所述内容并过滤其中的潜在恶意代码;以及
由所述第一iFrame对象从所述净化功能接收过滤后的所述内容。
3.根据权利要求1所述的方法,其中所述方法通过由Web应用接收的JavaScript逻辑来激活。
4.根据权利要求1所述的方法,其中所述方法由Web应用防火墙来实现。
5.根据权利要求1所述的方法,其中所述方法由客户端插件或者由服务器端的代理来实现。
6.根据权利要求1所述的方法,其中所述低级域是用于实际获取并向用户呈现第三方服务器的内容的域。
7.根据权利要求1所述的方法,其中所述上级域是虚拟域,该虚拟域中不包含任何有用数据。
8.一种用于为Web应用提供针对跨域交互的运行时脆弱性防护的系统,所述系统包括:
用于由Web应用创建第一iFrame对象和第二iFrame对象的装置,其中所述第一和第二iFrame对象同属于Web应用所在的低级域;
用于由所述第一iFrame对象创建一个对象,并使所述第二iFrame共享所述所创建的对象的装置;
用于将所述第二iFrame所属的域提升为上级域的装置;
用于在所述共享对象中,由所述第二iFrame对象创建一个源访问功能的装置,所述源访问功能用于向第三方服务器提交访问其上的内容的请求;以及
用于在所述共享对象中,由所述第一iFrame对象创建一个净化功能的装置,所述净化功能用于对由所述第二iFrame对象从第三方服务器接收的响应进行净化。
9.根据权利要求8所述的系统,进一步包括:
用于由所述第一iFrame对象将用于访问第三方服务器的内容的请求传送到所述源访问功能的装置;
用于由所述源访问功能向第三方服务器提交所述请求的装置;
用于由所述第二iFrame对象从第三方服务器接收所需内容的装置;
用于由所述净化功能从所述第二iFrame对象接收所述内容并过滤其中的潜在恶意代码的装置;以及
用于由所述第一iFrame对象从所述净化功能接收过滤后的所述内容的装置。
10.根据权利要求8所述的系统,其中所述系统的操作通过由Web应用接收的JavaScript逻辑来激活。
11.根据权利要求8所述的系统,其中所述系统被实现为Web应用防火墙。
12.根据权利要求8所述的系统,其中所述系统被实现为客户端插件或者服务器端的代理。
13.根据权利要求8所述的系统,其中所述低级域是用于实际获取并向用户呈现第三方服务器的内容的域。
14.根据权利要求8所述的系统,其中所述上级域是虚拟域,该虚拟域中不包含任何有用数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810212617.4A CN101662462B (zh) | 2008-08-25 | 2008-08-25 | 提供针对跨域交互的运行时脆弱性防护的方法和系统 |
US12/546,754 US8341239B2 (en) | 2008-08-25 | 2009-08-25 | Method and system for providing runtime vulnerability defense for cross domain interactions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810212617.4A CN101662462B (zh) | 2008-08-25 | 2008-08-25 | 提供针对跨域交互的运行时脆弱性防护的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101662462A true CN101662462A (zh) | 2010-03-03 |
CN101662462B CN101662462B (zh) | 2013-01-02 |
Family
ID=41697328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810212617.4A Expired - Fee Related CN101662462B (zh) | 2008-08-25 | 2008-08-25 | 提供针对跨域交互的运行时脆弱性防护的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8341239B2 (zh) |
CN (1) | CN101662462B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958814A (zh) * | 2010-09-17 | 2011-01-26 | 百度在线网络技术(北京)有限公司 | 一种在线应用的状态监测方法及装置 |
CN102486780A (zh) * | 2010-12-01 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 异步跨域传输xml数据的方法、客户端和服务端 |
CN103023790A (zh) * | 2012-12-31 | 2013-04-03 | 北京京东世纪贸易有限公司 | 一种用于实现跨域交互访问的方法和系统 |
CN103152445A (zh) * | 2013-04-03 | 2013-06-12 | 晶赞广告(上海)有限公司 | 一种互联网安全的异步跨域身份标识映射方法 |
CN103207863A (zh) * | 2012-01-13 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 页面跨域交互方法及终端 |
US9229835B2 (en) | 2010-09-17 | 2016-01-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for monitoring state of online application |
CN105991599A (zh) * | 2015-02-26 | 2016-10-05 | 阿里巴巴集团控股有限公司 | Jsonp请求方法及装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8789204B2 (en) * | 2009-12-22 | 2014-07-22 | Nokia Corporation | Method and apparatus for secure cross-site scripting |
US8984409B2 (en) | 2010-03-12 | 2015-03-17 | Salesforce.Com, Inc. | Service cloud console |
US20110321022A1 (en) * | 2010-06-25 | 2011-12-29 | Mitel Networks Corporation | Code generation through metadata programming for mobile devices and web platforms to ease access to web services |
US9077745B1 (en) | 2010-08-04 | 2015-07-07 | Saint Corporation | Method of resolving port binding conflicts, and system and method of remote vulnerability assessment |
US20120317238A1 (en) * | 2011-06-09 | 2012-12-13 | Salesforce.Com, Inc. | Secure cross-domain communication |
US9215096B2 (en) * | 2011-08-26 | 2015-12-15 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing communication between network domains in a service cloud |
US20130227520A1 (en) * | 2011-09-01 | 2013-08-29 | Eric Hosick | Rapid process integration through visual integration and simple interface programming |
CN103905477B (zh) * | 2012-12-25 | 2018-04-27 | 阿里巴巴集团控股有限公司 | 一种处理http请求的方法及服务器 |
US9348933B2 (en) | 2013-03-13 | 2016-05-24 | Microsoft Technology Licensing, Llc | Inter-frame communication of objects |
US9697188B2 (en) * | 2013-11-15 | 2017-07-04 | Instart Logic, Inc. | Method to enable cross-origin resource sharing from a webpage inside a private network |
US20150188779A1 (en) * | 2013-12-31 | 2015-07-02 | Jut, Inc. | Split-application infrastructure |
US9251372B1 (en) * | 2015-03-20 | 2016-02-02 | Yahoo! Inc. | Secure service for receiving sensitive information through nested iFrames |
EP3298746B1 (en) * | 2015-08-06 | 2021-10-06 | Huawei Technologies Co., Ltd. | Offloading web security services to client side |
US10380347B2 (en) | 2016-06-08 | 2019-08-13 | Salesforce.Com., Inc. | Hierarchical runtime analysis framework for defining vulnerabilities |
US10140456B2 (en) * | 2016-06-08 | 2018-11-27 | Salesforce.Com, Inc. | Runtime analysis of software security vulnerabilities |
US10241890B2 (en) | 2016-07-28 | 2019-03-26 | Salesforce.Com, Inc. | Hybrid code modification in intermediate language for software application |
US10404765B2 (en) | 2016-11-01 | 2019-09-03 | Microsoft Technology Licensing, Llc | Re-homing embedded web content via cross-iframe signaling |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010044189A (ko) * | 2000-12-29 | 2001-06-05 | 유진우 | 멀티브라우즈 기능을 구비한 웹문서 처리방법 및 장치 |
US7430712B2 (en) * | 2005-03-16 | 2008-09-30 | Ameriprise Financial, Inc. | System and method for dynamically resizing embeded web page content |
US8943035B2 (en) * | 2005-11-14 | 2015-01-27 | Patrick J. Ferrel | Distributing web applications across a pre-existing web |
US20080010359A1 (en) * | 2006-07-10 | 2008-01-10 | Jeffrey Mark Achtermann | Computer implemented method and system for managing server-based rendering of messages in a heterogeneous environment |
CN101075240A (zh) * | 2006-08-25 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 跨域获取数据的方法和系统 |
CN101615179B (zh) * | 2008-06-25 | 2011-08-17 | 国际商业机器公司 | 用于Web应用的跨域交互的方法和系统 |
-
2008
- 2008-08-25 CN CN200810212617.4A patent/CN101662462B/zh not_active Expired - Fee Related
-
2009
- 2009-08-25 US US12/546,754 patent/US8341239B2/en not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958814A (zh) * | 2010-09-17 | 2011-01-26 | 百度在线网络技术(北京)有限公司 | 一种在线应用的状态监测方法及装置 |
CN101958814B (zh) * | 2010-09-17 | 2011-11-23 | 百度在线网络技术(北京)有限公司 | 一种在线应用的状态监测方法及装置 |
US9229835B2 (en) | 2010-09-17 | 2016-01-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for monitoring state of online application |
US9229834B2 (en) | 2010-09-17 | 2016-01-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Online application system and method for implementing the same |
CN102486780A (zh) * | 2010-12-01 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 异步跨域传输xml数据的方法、客户端和服务端 |
CN103207863A (zh) * | 2012-01-13 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 页面跨域交互方法及终端 |
CN103207863B (zh) * | 2012-01-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 页面跨域交互方法及终端 |
CN103023790A (zh) * | 2012-12-31 | 2013-04-03 | 北京京东世纪贸易有限公司 | 一种用于实现跨域交互访问的方法和系统 |
CN103152445A (zh) * | 2013-04-03 | 2013-06-12 | 晶赞广告(上海)有限公司 | 一种互联网安全的异步跨域身份标识映射方法 |
CN103152445B (zh) * | 2013-04-03 | 2016-02-03 | 晶赞广告(上海)有限公司 | 一种互联网安全的异步跨域身份标识映射方法 |
CN105991599A (zh) * | 2015-02-26 | 2016-10-05 | 阿里巴巴集团控股有限公司 | Jsonp请求方法及装置 |
CN105991599B (zh) * | 2015-02-26 | 2019-06-28 | 阿里巴巴集团控股有限公司 | Jsonp请求方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20100049792A1 (en) | 2010-02-25 |
US8341239B2 (en) | 2012-12-25 |
CN101662462B (zh) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101662462B (zh) | 提供针对跨域交互的运行时脆弱性防护的方法和系统 | |
Darrell et al. | Robust estimation of a multi-layered motion representation | |
CN104580074B (zh) | 客户端应用的登录方法及其相应的服务器 | |
CN100417066C (zh) | 用于处理基于浏览器的应用中的安全问题的多域访问代理 | |
JP5305581B2 (ja) | ポートレット構成データを交換するための方法、ポータル、およびコンピュータ・プログラム | |
US6691158B1 (en) | E-service to manage contact information and track contact location | |
US7017109B1 (en) | E-service to manage contact information and signature ECards | |
US8983935B2 (en) | Methods for utilizing a javascript emulator in a web content proxy server and devices thereof | |
CN104933188B (zh) | 一种专利个性化库的数据同步系统及方法 | |
CN100580670C (zh) | 用于由用户触发的内容恢复的方法和计算机系统 | |
CN1478348A (zh) | Web站点的安全会话管理和认证 | |
US20040051730A1 (en) | E-Service to manage and export contact information | |
US9497260B2 (en) | Communication between two web applications | |
US9923990B2 (en) | User information widgets and methods for updating and retrieving user information | |
CN103685304A (zh) | 一种共享session信息的方法和系统 | |
JP2012069087A (ja) | Webサービス提供システム、サーバ装置、方法およびプログラム | |
US7454506B2 (en) | Method for maintaining state information on a client | |
CN110175316B (zh) | 一种基于区块链的媒体号交互方法、系统及存储介质 | |
JP5347429B2 (ja) | ユニフォームリソースロケータ書換方法及び装置 | |
CN104935562A (zh) | 信息处理装置、信息处理系统、以及信息处理方法 | |
CN109508437A (zh) | 一种搜索网站审计方法、系统及网关设备和存储介质 | |
CN112579958A (zh) | 网页转换方法、装置、计算机设备及可读存储介质 | |
CN112528181B (zh) | 二维码管理方法、装置、计算机设备及可读存储介质 | |
CN106548090A (zh) | 一种网络文件保护方法及web服务器 | |
CN102609494A (zh) | 台帐数据的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180612 Address after: 7 floor, building 10, Zhang Jiang Innovation Park, 399 Keyuan Road, Zhang Jiang high tech park, Pudong New Area, Shanghai. Patentee after: International Business Machines (China) Co., Ltd. Address before: American New York Patentee before: International Business Machines Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130102 Termination date: 20190825 |