CN104956362A - 分析web应用程序的结构 - Google Patents

分析web应用程序的结构 Download PDF

Info

Publication number
CN104956362A
CN104956362A CN201380071708.XA CN201380071708A CN104956362A CN 104956362 A CN104956362 A CN 104956362A CN 201380071708 A CN201380071708 A CN 201380071708A CN 104956362 A CN104956362 A CN 104956362A
Authority
CN
China
Prior art keywords
token
exercisable
weblication
group
scanner
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
Application number
CN201380071708.XA
Other languages
English (en)
Other versions
CN104956362B (zh
Inventor
肖恩·摩根·森普森
基里尔·缅杰列维
戴维·斯科特·蒂勒
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.)
Weifosi Co ltd
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN104956362A publication Critical patent/CN104956362A/zh
Application granted granted Critical
Publication of CN104956362B publication Critical patent/CN104956362B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开的示例实施例涉及分析web应用程序。web应用程序被加载。在该web应用程序的用户界面元素上模拟用户动作。根据规则遍历该web应用程序的结构以确定一组可操作的令牌。所述各可操作的令牌包括该web应用程序的、能够改变基于该web应用程序而被呈现的用户界面的部分。

Description

分析web应用程序的结构
背景技术
使用软件安全测试来确定诸如web应用程序的应用程序中的漏洞。基于网络的软件工作的传统的黑盒安全测试通过利用伪装成攻击者的、通常被称为扫描器的安全测试应用程序,而发挥作用。扫描器通过发出HTTP请求并分析HTTP响应或缺乏HTTP响应来探究被测应用程序(AUT),以便发现所有AUT接受输入的URL。AUT接受输入的URL可以被称为AUT的受攻击面。然后,扫描器根据受攻击面和可能的漏洞类别来创建攻击。扫描器应用程序攻击来通过评估程序的HTTP响应以诊断漏洞的存在或不存在。
附图说明
下面的详细说明参照附图,附图中:
图1为根据一个示例的用于分析web应用程序的结构的计算系统的框图;
图2A和图2B为根据各种示例的规则和令牌的框图;
图3为根据一个示例的用于分析web应用程序的结构的方法的流程图;和
图4为根据一个示例的能够分析web应用程序的结构的装置的框图。
具体实施方式
本发明描述的实施例提供用于对诸如web应用程序的应用程序进行测试的技术。当公司想要知道公司所拥有的生产中的或将要投产的web应用程序有多安全时,公司经常采用诸如渗透测试解决方案(例如,使用扫描器)、模糊测试、漏洞测试、软件安全测试、网站安全测试、它们的组合等的安全测试解决方案。公司可能希望使用生产中的应用程序的副本作为被测应用程序(AUT)。
自动动态web应用程序安全扫描器在攻击AUT之前,先探究AUT。这一过程可以被称为“爬行”。爬行AUT可以通过分析web应用程序的超文本标记语言(HTML)和在诸如嵌入到web应用程序扫描器中的网络浏览器布局引擎的网络浏览器布局引擎的受控环境中执行AUT的代码来完成。
由于使用Web 2.0应用程序的增长,它们复杂的结构妨碍了HTML页面分析并使得浏览器级别的处理变得复杂。许多Web2.0应用程序具有最小引导的HTML代码,最小引导的HTML代码下载主代码,例如,直接运行于浏览器文档对象模型(DOM)和JavaScript(JS)结构上的JS代码、异步JS和XML(AJAX)调用、动态创建的链接、DOM事件等等。有时,由于运行了JS代码,因此其它HTML文档不在应用程序的周期内取出。
一种爬行这样严重地基于JS的应用程序的方法是允许在标准浏览器引擎中执行应用程序,然后通过把鼠标和键盘事件发送到Web应用程序的用户界面(UI)元素来模拟用户动作,征求对JS代码的评价,这可能会改变Web应用程序的状态并可能提供有关Web应用程序的攻击媒介的信息。但是,这种方法是非常耗时、不可靠的,而且容易“扫描失控”。一个“扫描失控”的示例是扫描在页面上发现的“日历”控件:尽管日历中所有日期都是扫描器生成事件的有效目标,但是对可能的日历日期的尝试点击会导致基本上是无限的扫描时间。因此,高级JS框架可以广泛地利用“事件冒泡”来巩固事件处理程序,防止系统找到合适的事件目标,并且最复杂的部件(例如日历、时间表、树、表格等)可能呈现对于爬虫在可管理的时间中进行遍历来说,太多的可操作元素。
此外,通过与所有是用户事件的潜在目标的UI部件交互,以进行穷尽的UI级的爬行是低效率的。应用程序内的某些UI元素,由于事件处理程序属于应用程序的结构内的其它元素(例如,自下而上检测或现代浏览器内的DOM事件的冒泡)不能被识别为事件的有效目标。进一步地,通过发送鼠标和键盘事件的应用程序的DOM元素的完全饱和是很耗时的,可能会破坏应用程序逻辑,因此是行不通的。此外,缺少关于应用程序的逻辑的认识不允许与复杂UI控件的正确交互。如此,这些挑战阻止了通过基于UI的爬行而正确发现应用程序面,这大大削弱了自动动态web应用程序扫描的质量。
因此,本发明中公开的各种实施例涉及遵照一套区别处理以具体方式写成的应用程序的预定义规则,简化应用程序的结构以列出(例如,图或树)可操作的元件。利用这种方法,可以提供对附加的框架(例如,jQuery、Dojo等)的支持,从而实现对应用程序的更高质量的扫描并发现先前被隐藏的应用程序状态中的漏洞。
该方案的优点包括创建应用程序的结构的简化但是准确的表示。使用用于描述对特定类型的应用程序和具体的JS框架的分析过程的良好定义的规则语言来实现对应用程序的高覆盖。
为了发现应用程序受攻击面,web应用程序扫描器在web应用程序的UI元素上模拟用户动作。DOM分析器利用图2A中进一步详细说明的规则来遍历应用程序的结构,并把复杂的DOM转换为图2B中进一步详细说明的简明列表可操作的令牌。在某些示例中,令牌表示为鼠标或键盘事件的有效目标的DOM元素,或可能被调用、评价、或以任何其它方式修改的JS实体。
每条规则可以包括用于检查该规则是否应该在web应用程序的具体框架上激活的规则相关属性,或由其组成。在一些示例中,规则可以是JS框架专用的,包括所使用的JS的版本。在一个示例中,如果规则是活跃的,那么该规则的所有选择器都被调用。然后,每个选择器都被用在对web应用程序的DOM和JS结构的遍历中,以返回令牌的列表。在另一示例中,如果规则是活跃的,那么可以根据对web应用程序的进一步分析(例如,根据web应用程序的缓存)来确定选择器。在这里详细说明上述进一步分析。
在一些示例中,选择器是用来识别感兴趣的DOM中的元素的技术或机制。在一些示例中,选择器可以被内置到用于描述应用程序的语言中,例如层叠样式表(CSS)具有内置的选择器。在CSS的示例中,“.”可以用来选择类,而“#”可以用来选择id。利用这一方法,“.role”可以用来选择具有类“role”的DOM中的每一个元素。在其它示例中,选择器可以由规则产生。例如,规则可以编写JavaScript或其它脚本/代码以返回作为令牌的、一组选定的元素。
在某些示例中,令牌表示为鼠标或键盘事件的有效目标的DOM元素,或可能被调用、评价、或以任何其它方式修改的JS实体。令牌包括可以被用来检索元件和DOM或JS实体的允许动作的列表的定位器(例如,定位器可以是简单的XPath、TruClient特定的定位器等)。
可以识别有关的规则,然后可以启用相关的选择器。于是,可以利用选择器分析web应用程序的DOM以产生令牌。这扩大了应用程序的抓取范围,并在应用程序中发现较短的业务流程路径。令牌可以被发送给扫描器以扫描web应用程序。在扫描过程中,令牌可以由web应用程序扫描器使用来定位有关DOM对象/JS实体并激活它们。这可以被用来确定漏洞和关于web应用程序的其它消息。
图1为根据一个示例的用于分析web应用程序的结构的计算系统的框图。在此示例中,计算系统100可以包括用于在web应用程序104的用户界面元素上模拟用户动作的扫描器102。web应用程序104可以被加载到浏览器布局引擎106中,并由文档分析器108根据一组规则110进行分析。计算系统100的一个或多个部件可以利用至少一个处理器和存储器实现。进一步地,一个或多个计算机可以被用来实现部件中的每一个部件,或者部件中的每一个部件都可以被实现在单个计算系统中。
扫描器102可以发送web应用程序104的定位器或标识符(例如,统一资源定位符(URL))给浏览器布局引擎106。浏览器布局引擎106可以加载web应用程序104,例如,根据URL加载web应用程序104。在一些示例中,浏览器布局引擎106可以是被配置来作为扫描器计算系统100的部分而起作用的、网络浏览器或修改的浏览器。web应用程序104的示例包括日历应用程序、电子邮件界面、新闻网页、诸如视频流的其它内容资源、生产应用程序等等。
然后,扫描器102可以在web应用程序104的用户界面元素上模拟用户动作。模拟可以是随机的,或基于预定的组。模拟可以当文档分析器108遍历web应用程序104的结构时发生。模拟可以被用来帮助文档分析器108确定要激活一条或多条规则来产生可操作的令牌。如此,文档分析器108根据规则遍历web应用程序104的结构,以把web应用程序104的复杂DOM转换为一组可操作的令牌。各可操作的令牌可以包括web应用程序的、能够改变基于web应用程序104而被呈现的用户界面的部分。web应用程序的、能够改变用户界面的部分的示例可以包括键盘事件的目标、点击事件的目标、其它可操作的元素等等。在一些示例中,可操作的元素可以包括JavaScript对象。
在一个示例中,文档分析器108可以根据模拟的动作确定web应用程序104中存在特定类型的框架。在一个示例中,框架是其中提供通用功能软件可以被用户代码选择性地改变,以提供应用程序特定的软件的抽象。这可以通过利用模拟的动作来确定存在与框架有关的选择器而发生。根据这一方法,可以确定多个框架。web框架的示例包括jQuery、YUI Lobrary、Dojo工具箱、MooTool、原型JS框架、Ajax、网络无障碍倡议(Web Accessibility Initiative,WAI)-无障碍丰富互联网应用程序(AccessibleRich Internet Applications,ARIA)和Flash。框架可以被进一步粒化成版本,因为版本的变化可能影响相关的功能和选择器。
可以为每一个识别的框架启用一组选择器。在一个示例中,也可以启用一些默认的选择器,在其它示例中,当识别了框架时,所有有关的选择器都被启用。在又一示例中,当与框架有关的选择器被识别时,该框架被识别。
此外,选择器可以被基于web应用程序104可以被搜索的内容而过滤。例如,知道jQuery存储关于选择器的信息的方式,文档分析器108就可以通过查询jQuery的缓存结构来获取选择器的列表。缓存结构可以根据jQuery的版本变化。
在一个示例中,为了找到相关的选择器,文档分析器可以分析jQuery.cache JS代码[window.document[jQuery.expando]]。结果可能是包含为鼠标和/或键盘事件的有效目标的DOM元素的选择器的JS对象的阵列。这一示例可以基于jQuery 1.6。在jQuery1.7中,内部结构发生了变化,因此可以编写更复杂的JS代码以获得相关元素。这一类型的代码可以具体地为具体类型的框架编写。在某些示例中,可以把jQuery称为框架,而1.6和1.7被称为框架的版本或类型。当发现特定的框架时,可以基于框架的具体细节分析web应用程序104以获得可操作的令牌。诸如处理web应用程序代码的其它方法可以被用来确定特定框架的存在。此外,可以实现文档分析器108的规则来自动地检测一个或多个框架并获取相关元素的列表。
当分析web应用程序104时,越来越多的选择器被确定。如所指出的,规则可以被用来确定通用的,框架特定的,或实现特定的(例如,那些从缓存抽出的)的选择器。然后,文档分析器108可以使用符号化功能来尝试寻找被激活的选择器的作用和位置。利用选择器,文档分析器108和/或扫描器102可以在web应用程序104上查找令牌。如上所述,在某些示例中,令牌表示为鼠标或键盘事件的有效目标的DOM元素,或可能被调用、评价、或以任何其它方式修改的JS实体。可以为选择器中的每一个选择器找到一组令牌。在一些示例中,组可以是空的。令牌可以包括令牌的定位器和可以对/由令牌进行的一个或多个功能或动作。
因此,当被实现时,规则可以激活至少一个选择器,至少一个选择器可以返回至少一个可操作的令牌。此外,各可操作的令牌可以包括相关的定位器和一组与各可操作的令牌有关的允许的动作。进一步地,当文档分析器108确定特定类型的代码在web应用程序中可执行时(例如,确定了框架),文档分析器108可以根据特定类型的代码(例如,框架)确定允许的动作中的至少一个动作。例如,这可以通过启用相关的选择器、然后根据选择器尝试寻找令牌和元素,而发生。
如所示出地,一组令牌可以被发送给扫描器102以扫描web应用程序104。在一个示例中,扫描器102可以是用于模拟用户动作的同一扫描器。在另一示例中,扫描器可以是另一扫描器。扫描器可以包括用于消耗可操作的令牌的事件处理程序。进一步地,扫描器可以使用可操作的令牌来确定要在web应用程序104中执行的一组测试。扫描器可以通过为可操作的令牌中的每一个可操作的令牌都执行根据各定位器定位的测试和在定位器处的相应的允许动作,来根据可操作的令牌在web应用程序中执行测试。
适于检索和执行指令的处理器,例如中央处理单元(CPU)或微处理器,和/或电子电路可以被配置来执行本发明所述的任何部件的功能。在某些情况下,指令和/或其它信息,如令牌、web应用程序、规则等,可以被包括在存储器中。每个部件都可以包括,例如包括用于实现本发明所述的功能性的电子电路的硬件设备。除此之外或作为替代,每个部件都可被实现为被编码在机器可读存储介质上并且可由处理器执行的一系列指令。应该注意到,在一些实施例中,一些模块被实现为硬件设备,而其它模块则被实现为可执行指令。
图2A和图2B为根据各种示例的规则和令牌的框图。图2A示出规则对象200。规则对象200可以是结构、类等等。每条规则都可以与相关属性202和选择器204相关联。选择器204可以包括一组一个或多个选择器206a-206n。选择器204、206a-206n检查DOM并返回可操作的DOM实体的序列。不是所有的选择器206a-206n都需要与单个规则相关联。相关属性202被用来激活或禁用规则。在一个示例中,当文档分析器正在web应用程序上执行时,来自扫描器的爬行可以被用来确定规则是否是相关的。在一些示例中,在web应用程序中使用的一个或多个框架可能留下指纹。这可以被用来确定哪些规则与应用程序有关。在其它示例中,扫描器可以爬行应用程序并随机地选择应用程序中的对象。对象可以被分析以用来确定规则是否相关。选择器的示例包括CSS选择器206a、JavaScript选择器206b和jQuery选择器206n。在一个示例中,规则可以被与特定类型的jQuery版本相关联。如此,当规则被认为是相关的,可以检查jQuery缓存来决定要启用的选择器。
图2B示出令牌对象250。令牌对象250可以是结构、类等等。令牌对象250可以包括一个或多个动作252,以及定位器254。令牌对象250可以定义应该是扫描器的动作的目标的DOM实体。可以通过各种机制,例如XPath260、属性262(例如,ARIA)、TruClient264等,进行位置确定。操作或动作可能根据DOM元素而不同。例如,可操作的令牌可以被与鼠标事件256、键盘事件258或其它用户界面改变事件(例如,执行JS代码)相关联。
图3为根据一个示例的用于分析web应用程序的结构的方法的流程图。尽管下面参照计算系统100描述方法300的执行,但是可以使用执行方法300的其它合适的部件(例如,计算设备400)。此外,用于执行方法300的部件可以在多个设备间被展开。方法300可以被实现为被存储在诸如存储介质420的机器可读存储介质上的可执行指令和/或电子电路的形式。
方法300可以在302,以web应用程序104被加载到浏览器布局引擎106中,而开始。在304,扫描器或其它设备/模块可以在web应用程序104的用户界面元素上模拟用户的动作。在一些示例中,用户界面元素是能够交互和/或定义界面的外观的结构。用户界面元素的示例包括窗口、菜单、图标、域、控件、标签、光标、指针等。
在306,文档分析器108可以根据规则遍历web应用程序104的结构,并分析web应用程序104的复杂DOM以确定一组可操作的令牌。如上所述,各可操作的令牌可以包括web应用程序104的、能够改变基于web应用程序104而被呈现的用户界面的部分。该部分可以包括键盘事件、点击事件、可能被调用、评价或以任何其它方式修改的JS实体、或其组合的有效的目标。进一步地,可操作的令牌中的每一个可操作的令牌都可以包括各自的定位器和各自的一组允许动作。
如上所述,文档分析器108可以通过确定什么规则应该被启用和根据启用的规则确定选择器,来确定可操作的令牌。然后,文档分析器108可以使用选择器来确定令牌。
在某些示例中,令牌然后可以被提供给能够消耗令牌的扫描器。扫描器消耗可操作的令牌来为可操作的令牌中的每一个可操作的令牌确定要在web应用程序中执行的一组测试。然后,扫描器为可操作的令牌中的每一个可操作的令牌执行基于各定位器定位的各组测试和与各定位器有关的相应的允许动作。如此,当进行测试时,扫描器不需要消耗额外的时间来尝试与各选择器不兼容的动作。
图4为根据一个示例的能够分析web应用程序的结构的装置的框图。计算设备400包括例如处理器410和包括用于分析web应用程序的结构的指令422、424、426的机器可读存储介质420。计算设备400可以是例如笔记本计算机、平板计算设备、服务器、工作站、台式计算机、或任何其它计算设备。
处理器410可以是至少一个中央处理单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、其它适于检索和执行存储在机器可读存储媒体420中的指令的硬件设备,或者其组合。例如,处理器410可以包括芯片上的多个核,跨多个芯片的多个核,跨多个设备(例如,如果计算设备400包括多个节点设备)的多个核、或其组合。处理器410可以获取、译码和执行指令422、424、426来实施分析DOM结构,例如,如在方法300中实现的那样实施分析DOM结构。作为检索和执行指令的替代或者附加于检索和执行指令,处理器310可以包括:包括用于执行指令422、424和426的功能的若干电子部件的至少一个集成电路(IC)、其它控制逻辑、其它电子电路、或其组合。
机器可读存储媒体420可以是任何包含或存储可执行指令的电子的、磁的、光的或其它物理存储设备。因此,机器可读存储介质可以是,例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、紧致盘只读存储器(CD-ROM)等等。如此,机器可读存储介质可以是非暂时的。如在本发明中详细说明地,机器可读存储介质320可以以用于分析DOM结构的一系列可执行指令被编码。
网页指令422可以由处理器410执行,以把web应用程序加载到浏览器布局引擎中。然后,扫描指令424可以由处理器410执行,来在web应用程序的用户界面元素上模拟用户动作。可以与爬行网页类似地,来完成用户动作,并且用户动作可以是随机的或基于算法。
在模拟用户动作的过程中,分析器指令426可以被执行来确定与web应用程序有关的一个或多个选择器。分析器可以根据规则和模拟的用户动作来遍历web应用程序的结构,并分析web应用程序的复杂DOM以确定一组可操作的令牌。各可操作的令牌可以包括该web应用程序的、能够改变基于该web应用程序而被呈现的用户界面的部分。该部分的示例可以包括键盘事件、点击事件、JS事件、或其组合的目标。
进一步地,各可操作的令牌包括定位器和一组允许动作。定位器可以基于各种方法(例如,XPath、Attribute、TruClient等)中的一个方法。允许动作可以基于所用框架的类型和/或与令牌有关的对象的类型/作用。
一旦产生了令牌,那么令牌可以被发送给扫描器。扫描指令424可以被执行来消耗可操作的令牌来确定要在web应用程序中执行的一组测试。扫描器可以为可操作的令牌中的每一个可操作的令牌执行根据各定位器定位的测试和根据与定位器有关的相应的允许动作的可操作。

Claims (15)

1.一种系统,包括:
浏览器布局引擎,用于加载web应用程序;
扫描器,用于在该web应用程序的用户界面元素上模拟用户动作;和
文档分析器,用于根据规则遍历该web应用程序的结构和将该web应用程序的复杂文档对象模型转换为一组可操作的令牌,
其中各个可操作的令牌包括该web应用程序的、能够改变基于该web应用程序而被呈现的用户界面的部分。
2.根据权利要求1所述的系统,其中该部分包括下列中至少一个的有效目标:键盘事件、点击事件和JavaScript对象。
3.根据权利要求1所述的系统,其中所述规则包括至少一个选择器,并且该至少一个选择器返回所述可操作的令牌中的至少一个可操作的令牌。
4.根据权利要求3所述的系统,其中该文档分析器根据所述可操作的令牌中的一个可操作的令牌确定一组选择器是相关的,并且根据该相关性确定启用该组选择器,并且其中该相关性确定至少部分地基于该浏览器布局引擎的缓存。
5.根据权利要求1所述的系统,其中所述各个可操作的令牌包括定位器和一组允许动作。
6.根据权利要求5所述的系统,其中该扫描器或其它扫描器包括用于消耗所述可操作的令牌的事件处理程序,其中该扫描器或该其它扫描器使用所述可操作的令牌确定要在该web应用程序上执行的一组测试。
7.根据权利要求6所述的系统,其中该扫描器或该其它扫描器通过为所述可操作的令牌中的每一个可操作的令牌都执行根据各个定位器定位的测试和在该定位器处的相应的允许动作,来根据所述可操作的令牌在该web应用程序中执行所述测试。
8.根据权利要求5所述的系统,其中该文档分析器确定特定类型的代码在该web应用程序中可执行,并且其中该文档分析器根据该特定类型确定所述允许动作中的至少一个允许动作。
9.一种非暂时性机器可读存储介质,该存储介质用于存储指令,所述指令如果被计算系统的至少一个处理器执行,致使该计算系统:
加载web应用程序;
在该web应用程序的用户界面元素上模拟用户动作;和
根据规则和所述用户动作来遍历web应用程序的结构,并分析该web应用程序的复杂文档对象模型(DOM)以确定一组可操作的令牌,
其中各个可操作的令牌包括该web应用程序的、能够改变基于该web应用程序而被呈现的用户界面的部分,并且
其中所述各个可操作的令牌包括定位器和一组允许动作。
10.根据权利要求9所述的非暂时性机器可读存储介质,进一步包括指令,所述指令如果由该至少一个处理器执行,致使该计算系统:
消耗所述可操作的令牌以确定要在该web应用程序中执行的一组测试;和
为所述可操作的令牌中的每一个可操作的令牌执行根据各个定位器定位的测试和与该定位器有关的相应的允许动作。
11.根据权利要求9所述的非暂时性机器可读存储介质,进一步包括指令,所述指令如果由该至少一个处理器执行,致使该计算系统:
根据所述可操作的令牌中的一个可操作的令牌确定一组选择器是相关的;
根据该相关性确定,启用该组选择器;和
根据所述选择器进一步分析该DOM,以产生另外多组所述可操作的令牌。
12.根据权利要求9所述的非暂时性机器可读存储介质,其中该部分包括JavaScript对象的有效目标。
13.一种方法,包括:
加载web应用程序;
在该web应用程序的用户界面元素上模拟用户动作;和
根据规则来遍历该web应用程序的结构,并分析该web应用程序的复杂文档对象模型(DOM)以确定一组可操作的令牌,
其中各个可操作的令牌包括该web应用程序的、能够改变基于该web应用程序而被呈现的用户界面的部分,并且
其中所述可操作的令牌中的每一个可操作的令牌包括相应的定位器和相应的一组允许动作。
14.根据权利要求13所述的方法,进一步包括:
消耗所述可操作的令牌来为所述可操作的令牌中的每一个可操作的令牌确定要在该web应用程序中执行的一组测试,和
为所述可操作的令牌中的每一个可操作的令牌执行基于所述相应的定位器定位的相应一组测试和与所述相应的定位器有关的相应的允许动作。
15.根据权利要求13所述的方法,其中该部分包括键盘事件和点击事件中的至少一个事件的有效目标。
CN201380071708.XA 2013-01-29 2013-01-29 分析web应用程序的结构 Expired - Fee Related CN104956362B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/023655 WO2014120128A1 (en) 2013-01-29 2013-01-29 Analyzing structure of web application

Publications (2)

Publication Number Publication Date
CN104956362A true CN104956362A (zh) 2015-09-30
CN104956362B CN104956362B (zh) 2017-10-24

Family

ID=51262698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380071708.XA Expired - Fee Related CN104956362B (zh) 2013-01-29 2013-01-29 分析web应用程序的结构

Country Status (4)

Country Link
US (1) US10152552B2 (zh)
EP (1) EP2951718A4 (zh)
CN (1) CN104956362B (zh)
WO (1) WO2014120128A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015839A (zh) * 2016-09-27 2017-08-04 阿里巴巴集团控股有限公司 一种实现前端事件代理的方法及装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2659650B1 (en) * 2010-12-29 2022-06-22 Citrix Systems Inc. Systems and methods for multi-level tagging of encrypted items for additional security and efficient encrypted item determination
EP2951718A4 (en) 2013-01-29 2016-08-31 Hewlett Packard Entpr Dev Lp ANALYSIS STRUCTURE FOR WEB APPLICATION
US9910992B2 (en) * 2013-02-25 2018-03-06 Entit Software Llc Presentation of user interface elements based on rules
US20150135061A1 (en) * 2013-11-08 2015-05-14 Qualcomm Incorporated Systems and methods for parallel traversal of document object model tree
US11182280B2 (en) 2014-10-13 2021-11-23 Microsoft Technology Licensing, Llc Application testing
US10284664B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Application testing
CN105183657A (zh) * 2015-09-30 2015-12-23 上海斐讯数据通信技术有限公司 一种web界面的测试系统及方法
CN105824752B (zh) * 2016-03-16 2018-09-14 北京齐尔布莱特科技有限公司 一种接口自动化测试方法、装置和计算设备
US10846410B2 (en) * 2017-12-21 2020-11-24 Microsoft Technology Licensing, Llc Automated fuzzing based on analysis of application execution flow
CN109450844B (zh) * 2018-09-18 2022-05-10 华为云计算技术有限公司 触发漏洞检测的方法及装置
US11228611B1 (en) * 2019-08-20 2022-01-18 Rapid7, Inc. Scanning unexposed web applications for vulnerabilities
US11442749B2 (en) 2019-11-11 2022-09-13 Klarna Bank Ab Location and extraction of item elements in a user interface
US11379092B2 (en) * 2019-11-11 2022-07-05 Klarna Bank Ab Dynamic location and extraction of a user interface element state in a user interface that is dependent on an event occurrence in a different user interface
US11726752B2 (en) 2019-11-11 2023-08-15 Klarna Bank Ab Unsupervised location and extraction of option elements in a user interface
US11366645B2 (en) 2019-11-11 2022-06-21 Klarna Bank Ab Dynamic identification of user interface elements through unsupervised exploration
US11580228B2 (en) * 2019-11-22 2023-02-14 Oracle International Corporation Coverage of web application analysis
US11409546B2 (en) 2020-01-15 2022-08-09 Klarna Bank Ab Interface classification system
US11386356B2 (en) 2020-01-15 2022-07-12 Klama Bank AB Method of training a learning system to classify interfaces
US10846106B1 (en) 2020-03-09 2020-11-24 Klarna Bank Ab Real-time interface classification in an application
US12107848B1 (en) * 2021-11-09 2024-10-01 Rapid7, Inc. Automated login framework for application security testing

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1235144A2 (en) * 2000-12-22 2002-08-28 Global Knowledge Network, Inc. Methods and apparatus for grammar-based recognition of user-interface objects in HTML applications
US20040111727A1 (en) * 2002-12-05 2004-06-10 Gunter Schwarzbauer Automatic context management for web applications with client side code execution
CN101529362A (zh) * 2006-10-30 2009-09-09 微软公司 web可配置的人体输入设备
CN101689200A (zh) * 2007-06-28 2010-03-31 艾利森电话股份有限公司 在web页面内改进的导航处理
CN101742031A (zh) * 2008-11-07 2010-06-16 佳能株式会社 信息处理系统、信息处理装置及信息处理方法
CN101808093A (zh) * 2010-03-15 2010-08-18 北京安天电子设备有限公司 一种对web安全进行自动化检测的系统和方法
US20110015917A1 (en) * 2009-07-17 2011-01-20 Pei Wang Browser emulator system
US20110159179A1 (en) * 2008-09-02 2011-06-30 Avery Dennison Corporation Metallized Retroreflective Sheeting with Increased Daytime Brightness
US20120023487A1 (en) * 2010-07-21 2012-01-26 Microsoft Corporation Measuring actual end user performance and availability of web applications

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687874B2 (en) 1998-10-05 2004-02-03 Nexpress Solutions Llc System for generating and maintaining field service publications
US7054952B1 (en) * 1999-12-09 2006-05-30 International Business Machines Corp. Electronic document delivery system employing distributed document object model (DOM) based transcoding and providing interactive javascript support
EP1269286B1 (en) * 2000-03-03 2008-11-19 International Business Machines Corporation System for determining web application vulnerabilities
US20030120719A1 (en) * 2001-08-28 2003-06-26 Yepishin Dmitriy V. System, method and computer program product for a user agent for pattern replay
US7975296B2 (en) * 2002-02-07 2011-07-05 Oracle International Corporation Automated security threat testing of web pages
US7039899B1 (en) 2002-03-27 2006-05-02 Oracle International Corporation System and method for automatically generating a script for testing software
US7552109B2 (en) 2003-10-15 2009-06-23 International Business Machines Corporation System, method, and service for collaborative focused crawling of documents on a network
US7552116B2 (en) * 2004-08-06 2009-06-23 The Board Of Trustees Of The University Of Illinois Method and system for extracting web query interfaces
US20060070075A1 (en) * 2004-09-03 2006-03-30 Sergei Rodionov Server-recorded macros and web application automation
US7913163B1 (en) 2004-09-22 2011-03-22 Google Inc. Determining semantically distinct regions of a document
WO2006058075A2 (en) 2004-11-22 2006-06-01 Truveo, Inc. Method and apparatus for an application crawler
US7343364B2 (en) * 2005-02-04 2008-03-11 Efunds Corporation Rules-based system architecture and systems using the same
US7369129B2 (en) 2005-06-13 2008-05-06 Sap Aktiengesellschaft Automated user interface testing
CA2512931A1 (en) 2005-07-22 2007-01-22 Cognos Incorporated Rich web application input validation
CN101238475B (zh) * 2005-08-12 2010-12-01 Nxp股份有限公司 软件应用安全方法和系统
US20080120305A1 (en) 2006-11-17 2008-05-22 Caleb Sima Web application auditing based on sub-application identification
WO2008064237A2 (en) 2006-11-20 2008-05-29 Yapta, Inc. Data retrieval and price tracking for goods and services in electronic commerce
TW200825835A (en) 2006-12-13 2008-06-16 Inst Information Industry System and method of detecting web page vulnerability and recording medium thereof
US8510813B2 (en) 2006-12-15 2013-08-13 Yahoo! Inc. Management of network login identities
US9009829B2 (en) 2007-06-12 2015-04-14 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for baiting inside attackers
US8494832B2 (en) 2007-06-20 2013-07-23 Sanjeev Krishnan Method and apparatus for software simulation
US20120016975A1 (en) 2010-07-15 2012-01-19 Lmr Inventions, Llc System and method for managing network resource requests
US8601586B1 (en) * 2008-03-24 2013-12-03 Google Inc. Method and system for detecting web application vulnerabilities
CN101572598B (zh) 2008-04-28 2013-03-06 国际商业机器公司 用于可靠的快速集成的方法和装置
US20100094860A1 (en) 2008-10-09 2010-04-15 Google Inc. Indexing online advertisements
US7962547B2 (en) * 2009-01-08 2011-06-14 International Business Machines Corporation Method for server-side logging of client browser state through markup language
US20100211865A1 (en) 2009-02-19 2010-08-19 Microsoft Corporation Cross-browser page visualization generation
CN101515300B (zh) * 2009-04-02 2011-07-20 阿里巴巴集团控股有限公司 一种Ajax网页内容的抓取方法及系统
US8555391B1 (en) 2009-04-25 2013-10-08 Dasient, Inc. Adaptive scanning
US8365290B2 (en) * 2009-05-15 2013-01-29 Frederick Young Web application vulnerability scanner
US8332763B2 (en) 2009-06-09 2012-12-11 Microsoft Corporation Aggregating dynamic visual content
US8255384B2 (en) * 2009-09-30 2012-08-28 Fujitsu Limited Client-tier validation of dynamic web applications
US8676966B2 (en) 2009-12-28 2014-03-18 International Business Machines Corporation Detecting and monitoring server side states during web application scanning
US9160737B2 (en) 2010-02-26 2015-10-13 Microsoft Technology Licensing, Llc Statistical security for anonymous mesh-up oriented online services
US9104809B2 (en) * 2010-03-24 2015-08-11 Fujitsu Limited Facilitating automated validation of a web application
US20110252405A1 (en) 2010-04-10 2011-10-13 Ilan Meirman Detecting user interface defects in a software application
US20110307808A1 (en) 2010-06-10 2011-12-15 Microsoft Corporation Rendering incompatible content within a user interface
US20120017274A1 (en) 2010-07-15 2012-01-19 Mcafee, Inc. Web scanning site map annotation
US9021047B2 (en) 2010-07-31 2015-04-28 Unwired Planet, Llc Method and system for delivering embedded objects in a webpage to a user agent using a network device
CN102511037A (zh) * 2010-08-10 2012-06-20 国际商业机器公司 用于自动测试web应用的方法和系统
KR20120051419A (ko) 2010-11-12 2012-05-22 삼성전자주식회사 종속형 스타일 시트 규칙 추출 장치 및 방법
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
BR112013030816A2 (pt) * 2011-05-31 2016-12-06 Hewlett Packard Delopment Company L P sistema para teste de segurança automatizado, método para teste de segurança automatizado e mídia não transitória lida por computador
US9225772B2 (en) * 2011-09-26 2015-12-29 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US8683596B2 (en) * 2011-10-28 2014-03-25 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities
US9391832B1 (en) * 2011-12-05 2016-07-12 Menlo Security, Inc. Secure surrogate cloud browsing
CN102523288A (zh) 2011-12-16 2012-06-27 北京视博云科技有限公司 一种为终端设备提供网页服务的系统与方法
US9195572B2 (en) * 2011-12-16 2015-11-24 Sap Se Systems and methods for identifying user interface (UI) elements
US9430652B1 (en) * 2012-01-31 2016-08-30 Protegrity Corporation Use rule-based tokenization data protection
US20130227396A1 (en) 2012-02-24 2013-08-29 Microsoft Corporation Editing content of a primary document and related files
GB201205117D0 (en) * 2012-03-23 2012-05-09 Saasid Ltd Dynamic rendering of a document object model
US8782431B2 (en) 2012-03-24 2014-07-15 Mach 1 Development, Inc. Digital data authentication and security system
US8752183B1 (en) * 2012-07-10 2014-06-10 Hoyt Technologies, Inc. Systems and methods for client-side vulnerability scanning and detection
US8793806B1 (en) 2012-07-13 2014-07-29 Google Inc. Systems and methods to selectively limit access only to a subset of content, identified in a whitelist, of a library of content
US9075917B2 (en) * 2012-09-15 2015-07-07 Yahoo! Inc. Testing framework for dynamic web pages
US9317693B2 (en) * 2012-10-22 2016-04-19 Rapid7, Llc Systems and methods for advanced dynamic analysis scanning
EP2951718A4 (en) 2013-01-29 2016-08-31 Hewlett Packard Entpr Dev Lp ANALYSIS STRUCTURE FOR WEB APPLICATION
US9910992B2 (en) * 2013-02-25 2018-03-06 Entit Software Llc Presentation of user interface elements based on rules
US9846781B2 (en) 2013-04-19 2017-12-19 Entit Software Llc Unused parameters of application under test
US9699142B1 (en) * 2014-05-07 2017-07-04 Amazon Technologies, Inc. Cross-site scripting defense using document object model template
US10110622B2 (en) 2015-02-13 2018-10-23 Microsoft Technology Licensing, Llc Security scanner

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1235144A2 (en) * 2000-12-22 2002-08-28 Global Knowledge Network, Inc. Methods and apparatus for grammar-based recognition of user-interface objects in HTML applications
US20040111727A1 (en) * 2002-12-05 2004-06-10 Gunter Schwarzbauer Automatic context management for web applications with client side code execution
CN101529362A (zh) * 2006-10-30 2009-09-09 微软公司 web可配置的人体输入设备
CN101689200A (zh) * 2007-06-28 2010-03-31 艾利森电话股份有限公司 在web页面内改进的导航处理
US20110159179A1 (en) * 2008-09-02 2011-06-30 Avery Dennison Corporation Metallized Retroreflective Sheeting with Increased Daytime Brightness
CN101742031A (zh) * 2008-11-07 2010-06-16 佳能株式会社 信息处理系统、信息处理装置及信息处理方法
US20110015917A1 (en) * 2009-07-17 2011-01-20 Pei Wang Browser emulator system
CN101808093A (zh) * 2010-03-15 2010-08-18 北京安天电子设备有限公司 一种对web安全进行自动化检测的系统和方法
US20120023487A1 (en) * 2010-07-21 2012-01-26 Microsoft Corporation Measuring actual end user performance and availability of web applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015839A (zh) * 2016-09-27 2017-08-04 阿里巴巴集团控股有限公司 一种实现前端事件代理的方法及装置

Also Published As

Publication number Publication date
CN104956362B (zh) 2017-10-24
US10152552B2 (en) 2018-12-11
US20160078146A1 (en) 2016-03-17
WO2014120128A1 (en) 2014-08-07
EP2951718A4 (en) 2016-08-31
EP2951718A1 (en) 2015-12-09

Similar Documents

Publication Publication Date Title
CN104956362B (zh) 分析web应用程序的结构
US9910992B2 (en) Presentation of user interface elements based on rules
US20190303269A1 (en) Methods and systems for testing visual aspects of a web page
CN101799855B (zh) 一种基于ActiveX组件模拟的网页木马检测方法
US9697012B2 (en) Relation-based identification of automation objects
US20160259773A1 (en) System and method for identifying web elements present on a web-page
CN102929656A (zh) 使用浏览器中内置ActiveX插件的方法和客户端
KR20060079080A (ko) 웹페이지의 양상을 평가하기 위한 방법 및 장치
CN110275705A (zh) 生成预加载页面代码的方法、装置、设备及存储介质
US9690855B2 (en) Method and system for searching for a web document
CN101587441A (zh) 辅助软件开发的设备、方法和系统
CN106844486A (zh) 爬取动态网页的方法及装置
CN113535587B (zh) 目标应用检测方法、装置及计算机设备
US10248392B2 (en) Replicating a web technology
JP6505849B2 (ja) 要素識別子の生成
CN104407979A (zh) 脚本检测方法和装置
Wang et al. JSTrace: Fast reproducing web application errors
Ricca et al. Web testware evolution
Patidar et al. Detection of cross browser inconsistency by comparing extracted attributes
US10565084B2 (en) Detecting transitions
Silva et al. Characterizing the control logic of web applications’ user interfaces
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
Gao Intelligent Positioning Method of Paging Buttons Based on Machine Learning
CN117215947A (zh) 一种页面白屏检测方法、装置、计算机设备及存储介质
Komorowski Discovering of execution patterns of subprograms in execution traces

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161010

Address after: Texas, USA

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT L.P.

Address before: Texas, USA

Applicant before: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180608

Address after: California, USA

Patentee after: Antiy Software Co.,Ltd.

Address before: Texas, USA

Patentee before: HEWLETT PACKARD ENTERPRISE DEVELOPMENT L.P.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Utah, USA

Patentee after: Weifosi Co.,Ltd.

Address before: California, USA

Patentee before: Antiy Software Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171024

Termination date: 20220129

CF01 Termination of patent right due to non-payment of annual fee