当前位置: 首页 > 专利查询>SAP欧洲公司专利>正文

防止第三方JavaScript漏洞制造技术

技术编号:21772339 阅读:34 留言:0更新日期:2019-08-03 21:44
实施例防止由第三方JavaScript代码引起的安全漏洞。浏览器从服务器接收包括第一JavaScript的文档。浏览器依次引用存储在数据库中的列表,以将第一JavaScript识别为源自服务器以外的第三方。该识别过程可能涉及获取堆栈跟踪。然后,浏览器引用第二JavaScript以便调整文档对象模型(DOM)特征(例如,全局API、DOM元素附接的API、DOM节点属性)以清理第一JavaScript。为了调整全局API,这可以包括用对清理函数的替换引用来覆盖第一JavaScript中的全局引用。为了调整DOM元素附加的API或DOM节点属性,该调整可以包括变更DOM节点元素的原型。浏览器使得DOM特征清理第一JavaScript,并传递清理过的JavaScript用于执行。

Preventing third-party JavaScript vulnerabilities

【技术实现步骤摘要】
防止第三方JavaScript漏洞
本专利技术涉及防止第三方JavaScript漏洞。
技术介绍
除非在本文中另外指出,否则本节中描述的方法不是本申请中的权利要求的现有技术,并且不被本节的内容承认为现有技术。现代web应用频繁地使用第三方JavaScript来向应用的客户端侧功能(functionality)添加额外的服务和特征。此代码直接从脚本提供商的第三方服务器输入到应用的客户端侧。因此,利用这样的第三方脚本的应用提供商对这些脚本的内容、质量或安全性没有影响。跨站点脚本(Cross-SiteScripting,XSS)是浏览器中的代码注入型安全漏洞中的类。web应用在受保护的环境中运行,使得只有来自与应用相同的来源的代码才能与其交互。因此,XSS攻击者的目标是在易受攻击网页的环境(来源)中,在受害者的浏览器中运行任意的JavaScript代码。如果成功,这允许攻击者以受害的用户的名义进行任何行动。例如,攻击者可能冒充应用的用户和/或检索诸如cookie的秘密信息。
技术实现思路
实施例涉及实施防止源自第三方的JavaScript代码引起的安全漏洞(例如,XSS)的系统和方法。特别地,浏览器从服务器接收包括第一JavaScript的文档。浏览器依次引用存储在数据库中的列表(例如,白名单或黑名单)以将第一JavaScript识别为源自除服务器以外的第三方。根据某些实施例,该识别过程涉及获取堆栈跟踪。然后,浏览器引用第二JavaScript,以便调整文档对象模型(documentobjectmodel,DOM)特征(例如,全局API、DOM元素附加API或DOM节点属性),以便清理第一JavaScript。为了调整全局API,其可以包括用对清理函数的替换引用来覆盖第一JavaScript中的全局引用。为了调整DOM元素附加的API或DOM节点属性,该调整可以包括变更DOM节点元素的原型。浏览器使得DOM特征清理第一JavaScript,并传递清理过的JavaScript用于执行。计算机实施的方法的实施例包括浏览器从服务器接收包括第一JavaScript的文档。浏览器引用存储在数据库中的列表以将第一JavaScript识别为源自除服务器以外的第三方。浏览器引用第二JavaScript来调整文档对象模型(DOM)特征以清理第一JavaScript。浏览器使得DOM特征清理第一JavaScript。浏览器将清理过的JavaScript传递给文档用于执行。非瞬时性计算机可读取存储介质体现为用于执行的计算机程序,其包括浏览器从服务器接收包括第一JavaScript的文档。浏览器引用存储在数据库中的列表以通过获取堆栈跟踪将第一JavaScript识别为源自除服务器以外的第三方。浏览器引用第二JavaScript来调整文档对象模型(DOM)特征以清理第一JavaScript。浏览器使得DOM特征清理第一JavaScript并且浏览器将清理过的JavaScript传递给文档用于执行。计算机系统的实施例包括一个或多个处理器和软件程序。该软件程序可在计算机系统上执行,并被配置为使得内存储器(in-memory)数据库引擎使浏览器从服务器接收包括第一JavaScript的文档。该软件程序使得浏览器引用存储在内存储器数据库中的列表,以将第一个JavaScript识别为源自除服务器以外的第三方。该软件程序使得浏览器引用第二JavaScript来调整文档对象模型(DOM)特征以清理第一JavaScript。该软件程序使得浏览器使DOM特征清理第一JavaScript,并使得浏览器将清理过的JavaScript传递给文档用以执行。根据一些实施例DOM特征包括应用程序接口(applicationprograminterface,API)。在某些实施例中,API包括全局API,并且该调整包括在调用第一JavaScript的原始功能之前,用对清理函数的替换引用来覆盖第一JavaScript中的全局引用。各种实施例还包括浏览器将另一引用添加到全局API。根据特殊的实施例,API包括被附接到DOM节点元素的本地API并且该调整包括变更DOM节点元素的原型。在一些实施例中,DOM特征包括DOM节点元素的属性,并且该调整包括变更DOM节点元素的原型。某些实施例还包括浏览器将属性添加到原型。特殊的实施例还包括浏览器暂时地将原型恢复到其原始状态、将原始功能分配给DOM节点元素、并且然后重新调整DOM特征以清理第一JavaScript。各种实施例还包括浏览器获取堆栈跟踪以将第一JavaScript识别为源自除服务器之外的第三方。根据一些实施例,列表包括白名单。下面的详细描述和附图提供了对实施例的性质和优点的更好理解。附图说明图1示出了根据实施例的系统的简化图。图2示出了根据实施例的方法的简化流程图。图3是示出远程JavaScript包括(inclusion)的示例的代码列表。图4是示出innerHTML示例的代码列表。图5是DOM内容的运行时间创建的表格。图6是示出根据实施例的JavaScript代码的动态创建的表格。图7呈现了根据实施例的应用和解决方案部署场景的概述。图8是示出全局API的透明调整的代码列表。图9是示出本地元素API的透明调整的代码列表。图10是示出影响整个文档的JavaScript的innerHTML属性的透明调整的代码列表。图11是示出不安全的全局API变型的代码列表。图12是示出不安全的innerHTML属性变型的引入的代码列表。图13是示出得到当前堆栈跟踪的代码列表。图14是SAPUI5函数的预固定(pre-fix)的列入白名单的代码列表。图15是列入白名单的函数的代码列表。图16是示出实施例的部署的代码列表。图17示出了根据实施例的专用计算机器的硬件,其被配置为实施防止第三方JavaScript漏洞。图18示出了示例性计算机系统。具体实施方式本文描述了实施防止第三方JavaScript安全漏洞的方法和装置。在以下描述中,为了解释的目的,根据本专利技术阐述了许多示例和具体细节以便提供对实施例的全面理解。然而,对于本领域技术人员显而易见的是,由权利要求限定的实施例可以单独地包括这些示例中的一些或全部特征,或者与下面描述的其他特征组合,并且可以进一步包括本文描述的特征和概念的修改和等同物。从概念观点来看,当从攻击者控制的源到安全敏感的接收器(sink)发生未过滤的数据流时,就会引起XSS漏洞。在客户端侧XSS的具体情况中,这样的源可以是URL,而接收器的示例是“eval”或“document.write”。这些API两者都将字符串接受为参数,其随后解析和执行为代码(分别为JavaScript和HTML)。因此,将攻击者可控制的输入传递给这些函数最终会导致执行攻击者提供的代码。现在讨论第三方JavaScript提供者的角色。HTML的脚本标签允许远程JavaScript文件的直接引用以及随后的包括。图3是示出远程JavaScript包括的示例的代码列表。HTML标签不受JavaScript的同源策略的影响。因此,这样的标签会使得web浏览器从第三方主机检索JavaScript代码并立即执行它。JavaScript代码在托管第一方w本文档来自技高网...

【技术保护点】
1.一种计算机实施的方法,包括:浏览器从服务器接收包括第一JavaScript的文档;所述浏览器引用存储在数据库中的列表以将第一JavaScript识别为源自除所述服务器之外的第三方;所述浏览器引用第二JavaScript来调整文档对象模型DOM特征以清理第一JavaScript;所述浏览器使得所述DOM特征清理第一JavaScript;以及所述浏览器将清理过的JavaScript传递给文档用于执行。

【技术特征摘要】
2018.01.25 US 15/880,3981.一种计算机实施的方法,包括:浏览器从服务器接收包括第一JavaScript的文档;所述浏览器引用存储在数据库中的列表以将第一JavaScript识别为源自除所述服务器之外的第三方;所述浏览器引用第二JavaScript来调整文档对象模型DOM特征以清理第一JavaScript;所述浏览器使得所述DOM特征清理第一JavaScript;以及所述浏览器将清理过的JavaScript传递给文档用于执行。2.如权利要求1所述的方法,其中,所述DOM特征包括应用程序接口API。3.如权利要求2所述的方法,其中,所述API包括全局API,并且所述调整包括:在调用第一JavaScript的原始功能之前,用对清理函数的替换引用来覆盖第一JavaScript中的全局引用。4.如权利要求3所述的方法,还包括所述浏览器向所述全局API添加另一引用。5.如权利要求2所述的方法,其中,所述API包括被附加到DOM节点元素的本地API,并且所述调整包括:变更所述DOM节点元素的原型。6.如权利要求1所述的方法,其中,所述DOM特征包括DOM节点元素的属性,并且所述调整包括:变更所述DOM节点元素的原型。7.如权利要求6所述的方法,还包括所述浏览器向所述原型添加属性。8.如权利要求6所述的方法,还包括所述浏览器:暂时地将所述原型恢复到原始状态;对所述DOM节点元素分配原始功能;并且然后重新调整所述DOM特征以清理第一JavaScript。9.如权利要求1所述的方法,还包括所述浏览器获取堆栈跟踪以将第一JavaScript识别为源自除服务器以外的第三方。10.如权利要求1所述的方法,其中,所述列表包括白名单。11.一种非瞬时性计算机可读存储介质,其体现用于执行方法的计算机程序,所述方法包括:浏览器从服务器接收包括第一JavaScript的文档;所述浏览器引用存储在数据库中的列表以通过获取堆栈跟踪将第一JavaScript识别为源自除服务器以外的第三方;所述浏览器引用第二JavaScript来调整文档对象模型DOM特征以清理第一JavaScript;所述浏览器使得所述DOM特征清理第一J...

【专利技术属性】
技术研发人员:M约翰斯
申请(专利权)人:SAP欧洲公司
类型:发明
国别省市:德国,DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1