CN103026684A - 跨站脚本攻击保护 - Google Patents

跨站脚本攻击保护 Download PDF

Info

Publication number
CN103026684A
CN103026684A CN2011800362007A CN201180036200A CN103026684A CN 103026684 A CN103026684 A CN 103026684A CN 2011800362007 A CN2011800362007 A CN 2011800362007A CN 201180036200 A CN201180036200 A CN 201180036200A CN 103026684 A CN103026684 A CN 103026684A
Authority
CN
China
Prior art keywords
output
content
dynamic
language document
dynamically
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
CN2011800362007A
Other languages
English (en)
Other versions
CN103026684B (zh
Inventor
M·E·祖尔科
O·S·佩克祖尔
M·麦格罗因
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103026684A publication Critical patent/CN103026684A/zh
Application granted granted Critical
Publication of CN103026684B publication Critical patent/CN103026684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • 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]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

一种技术提供对web应用内容的运行时输出净化过滤,该web应用内容包含多个包括动态内容的上下文。为了方便该操作,提前准备动态生成内容以用于净化,优选地通过web应用本身(或者通过由该应用使用或者与该应用结合使用的中间件)进行“标记”。优选地,通过在动态内容指示符之间包围给定的动态生成内容来标记该给定的动态生成内容。然后,在完成文档生成之后但是在将该文档输出(传送)之前,通过内容净化过滤器处理此应用生成的内容。过滤器使用动态内容标识符以标识和定位需要输出转义的内容。过滤器检测其中放置了动态生成内容的适当上下文,然后应用适当的转义。按照这种方式,输出内容即使从不在相同的运行时环境中操作的多个输入源组装,也能够提前充分准备好输出内容以供转义。按照这种方案,在完成所有其他应用处理并且完整的文档已准备好传送到请求的终端用户之后添加转义。

Description

跨站脚本攻击保护
技术领域
本发明通常涉及web应用安全并且尤其涉及用于提供运行时内容净化的方法和系统。
背景技术
确保现代软件系统没有安全漏洞是一项艰巨的任务。这样的系统经常包括大量代码,包括第三方和远程部件。而且,在大多数情况下,防止潜在攻击需要采取的措施远非简洁明了,因为这些措施取决于应用的状态、被处理的(潜在恶意)数据的确切内容以及应用将要使用该数据的用途。在面对web应用时问题会恶化,web应用按照设计经常以用户输入形式的不信任数据为源。而且,web应用经常访问安全敏感资源,诸如数据库、文件系统或者套接字。确保web应用免受恶意攻击的问题因此得到了显著关注。
跨站脚本(XSS)是允许恶意用户向由其他用户浏览的页面注入代码的web应用攻击。在许多分类中,其被认为是最高web应用漏洞类别。XSS问题的最严重结果是攻击者能够使合法用户的浏览器代表该用户执行改变应用状态的操作,或者使用户的浏览器披露私人数据。
存在防御XSS攻击的几种已知方法。一种方案被称为输入过滤。该方案涉及针对恶意数据检查web应用输入并且根据需要对其进行拒绝或者过滤。然而,输入过滤方法不能够确保完全保护,并且如果输入数据被web应用使用在多个上下文(例如HTML和JavaScript)中,则该方法就可能会过度主动积极(以至于无效)。一种可选方案是使用客户端侧保护,从而用户为其浏览器配备自动检测攻击企图的扩展。然而,客户端侧方案对于一些类型的XSS攻击不能正确工作,尤其是对于注入的代码不经过输入参数传送的永久XSS。
再一种方案,也是最公知的方案,被称为输出转义。当应用不能够转义其输出并且攻击者将HTML和/或JavaScript放在站点上,该站点的代码继而在站点访问者的web浏览器中运行时,发生XSS攻击。通过确保应用在仅试图发送纯文本时从不发送命令(HTML),输出转义阻止此发生。具体地说,按照这种方案,通过转义字符,即呈现字符使得它们被认为是数据而不是要由解释器的解析器消耗的元数据,从而防卫XSS攻击。XSS的转义规则对于其中将要嵌入(通常为不信任的)输入的HTML上下文敏感,并且这些规则典型地区分页面的各种部件(即HTML主体、典型属性、JavaScript事件处理机和链接)。设计该方案以确保应用渲染的内容包含代码(即使该代码被输入)。然而,为了成功实现,该方案要求开发者的显著关注以及测试组的积极方案,并且如果应用是利用来自不同供应商的软件创建的组合,则该方案难于实现。输出转义机制也难以维护和自动化。
当动态内容通过web应用被包括在单个文档中的多个不同情境(例如使用HTML、JavaScript等等)中时,输出转义会产生额外的问题。每一个包含的上下文典型地要求使用特有转义方法的不同净化,并且这些不同的转义方法经常不兼容且不能够被一起使用。解决该问题将引起附加的问题。如果在将动态内容包括到结果文档中时执行净化,则可能会难于识别(所包括部分的)外部上下文以及针对该输出应该使用什么转义。渲染特定动态内容的代码部分可能不会意识到其将在哪一个内容中被执行。然而,如果在动态内容包括期间不执行转义而是延迟转义直到应用构建完整的文档,则容易识别每一个要素的上下文,然而此时应用不能区分文档的哪些部分是合法的,哪些是XSS插入的。
这里公开的技术解决了已知现有技术的这些和其他缺陷。
发明内容
通常,本发明提供对web应用内容的运行时输出净化过滤,其中web应用内容包含多个包括有动态输出的上下文。为了方便该操作,提前准备动态生成的内容用于净化,优选地通过web应用本身(或者通过该应用使用的或者与该应用相关联的中间件)进行“标记”。优选地,通过将给定的动态生成内容包围在动态内容指示符之间对该动态生成内容进行标记。按照这样的方式生成标记以使得其不与合法的应用内容冲突并且还防御攻击者可能试图使用以绕开转义的有意冲突。然后,在完成文档生成之后但是在输出(传送)该文档之前,应用生成的内容通过内容净化过滤器进行处理。过滤器使用动态内容标识符以标识和定位需要输出转义的内容。过滤器检测放置了动态生成内容的适当上下文,并且然后应用适当转义。按照这种方式,即使输出内容正从不在相同运行时环境中操作的多个输入源进行组装,也能够提前充分准备输出内容用于转义。按照这种方式,在完成所有其他应用处理并且完整的文档已准备好用于传送到请求的终端用户之后添加转义。
在代表性实施例中,一种用于防御跨站脚本攻击的方法实施动态内容标记操作以在实际的web应用请求-响应处理流程期间方便内容净化。具体地说,响应于web应用请求,生成完整的标记语言文档。完整的标记语言文档包括静态内容以及一个或者多个动态输出。然后“标记”该完整的标记语言文档中的一个或者多个动态输出的每一个,以标识和定位(用于输出转义)该动态输出。然后,在响应于web应用请求而输出该完整的标记语言文档之前,净化所标记的动态输出的每一个(通过添加上下文特定转义)。然后响应于原始的web应用请求,输出该完整的标记语言文档(标记和净化的)以完成此方法。
优选地,标记步骤将一个或者多个指示符与特定的动态输出相关联。指示符典型地是具有特定值的数据串。在一个实施例中,该特定值是随机或者伪随机数据串。在另一实施例中,该特定值是动态输出的函数,诸如动态输出的数字签名。可以使用与web应用相关联的库函数来调用此标记,或者可以在正生成该动态内容时在web应用本身内应用此标记。
在另一代表性实施例中,在web应用响应于web应用请求已经生成完整的标记语言文档(例如具有所有动态生成的包括处理的文档)之后启动用于防御跨站脚本攻击的方法。完整的标记语言文档包括静态内容以及分别在不同的上下文中生成的第一和第二动态输出。根据该方法,标记该完整的标记语言文档中的每一个动态输出,优选地利用动态内容指示符或者标记符。在响应于web应用请求而输出完整的标记语言文档之前,净化所标记的每一个动态输出以添加输出转义。然后所处理的文档用于完成所述请求。
在另一代表性实施例中,一种装置包括处理器以及保存有由处理器执行以执行标记方法的计算机程序指令的计算机程序存储器。
在再一实施例中,描述一种位于计算机可读介质中的计算机产品,其在数据处理系统中使用以防御跨站脚本攻击。该计算机程序产品保存有在由数据处理系统执行时执行标记方法的计算机程序指令。
在另一代表性实施例中,还提供一种用于防御跨站脚本攻击的装置,包括:处理器;计算机存储器,保存有在由处理器执行时执行一种方法的计算机程序指令,该方法包括:接收响应于web应用请求而生成的完整的标记语言文档,该完整的标记语言文档包括静态内容以及至少第一和第二动态生成的输出,每一个动态生成的输出与不同的上下文相关联;以及在过滤该完整的标记语言以插入输出转义之前,利用一个或者多个标识符标记该完整的标记语言文档中的该一个或者多个动态输出的每一个,所述标识符标识和定位动态生成的输出以供输出转义。
在另一代表性实施例中,提供用于防御跨站脚本攻击的装置,包括:处理器;计算机存储器,保存有在由处理器执行时执行一种方法的计算机程序指令,该方法包括:接收响应于web应用请求而生成的完整的标记语言文档,该完整的标记语言文档包括静态内容以及一个或者多个动态输出;以及在过滤该完整的标记语言以插入输出转义之前,利用作为动态输出的函数的数据串来标记该完整的标记语言文档中的特定动态输出,数据串标识和定位该特定的动态输出以供输出转义。
前面概括了本发明的更多相关特征的一些。这些特征应该被视为只是说明性的。通过按照不同的方式应用所公开的发明或者通过修改将要描述的本发明,能够获得许多其他有益的结果。
附图说明
现在将参照附图仅以示例的方式描述本发明的实施例,其中:
图1描绘了可以实现说明性实施例的示例性方面的分布式数据处理环境的示例性方框图;
图2是可以实现说明性实施例的示例性方面的数据处理系统的示例性方框图;
图3是根据本公开的教导提供用于自动动态内容标记和输出净化的系统的一组部件的方框图;
图4是通过图3的web应用生成的示例web页面标记的一部分,其示出了包括动态内容的JSP代码片段;
图5示出了在没有执行根据本公开的教导的净化时,已经被XSS攻击修改以包括定制脚本的图4的示例web页面标记;
图6示出了在动态内容已经根据本公开的教导进行标记之后的图5的示例web页面标记;
图7示出了在图3的净化过滤器针对位于如图6所示定位的标记符之间的串应用转义之后的图6的示例web页面标记;以及
图8示出了描述图3的净化过滤器部件的操作的代表性处理流程。
具体实施方式
现在参照附图并且特别是参照图1-2,提供了可以实现本公开的说明性实施例的数据处理环境的示例性图示。应该意识到图1-2只是示例性的并且并不旨在断言或者暗示关于其中可以实现所公开主题的方面或者实施例的环境的任何限制。在不偏离本发明的范围的情况下可以对所阐释的环境进行许多修改。
现在参照附图,图1描绘了可以实现说明性实施例的诸方面的示例性分布式数据处理系统的图形表示。分布式数据处理系统100可以包括其中可以实现说明性实施例的诸方面的计算机网络。分布式数据处理系统100包含至少一个网络102,该网络102是用于在分布式数据处理系统100内连接到一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或者光纤电缆的连接。
在所描绘的示例中,服务器104和服务器106连同存储单元108连接到网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以例如是个人计算机、网络计算机等等。在所描绘的示例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统镜像和应用之类的数据。在所描绘的示例中客户端110、112和114是相对于服务器104的客户端。分布式数据处理系统100可以包括未示出的附加服务器、客户端和其他设备。
在所描绘的示例中,分布式数据处理系统100是互联网,网络102代表使用传输控制协议/互联网协议(TCP/IP)协议簇以彼此通信的网络和网关的万维集合。互联网的核心是主要结点或者主机计算机之间的高速数据通信线路骨干,其包括路由数据和消息的成千上万个商业、政府、教育和其他计算机系统。当然,分布式数据处理系统100也可以被实现以包括多个不同类型的网络,诸如以内联网、局域网(LAN)、广域网(WAN)等等为例。如上面阐述的,图1旨在作为示例,而非对所公开的主题的不同实施例的架构限制,并且因此,图1中示出的特定元件不应该被认为关于其中可以实现本发明说明性实施例的环境是限制性的。
现在参照图2,示出了可以实现说明性实施例的诸方面的示例性数据处理系统的方框图。数据处理系统200是诸如图1中的客户端110的计算机的示例,其中可以有实现用于本公开的说明性实施例的处理的计算机可用代码或者指令。
现在参照图2,示出了可以实现说明性实施例的数据处理系统的方框图。数据处理系统200是诸如图1中的服务器104或者客户端110的计算机的示例,其中可以有实现针对说明性实施例的处理的计算机可用程序代码或者指令。在该说明性示例中,数据处理系统200包括通信结构202,其在处理器单元204、存储器206、永久存储208、通信单元210、输入/输出(I/O)单元212和显示器214之间提供通信。
处理器单元204用于执行用于可以加载到存储器206中的软件的指令。取决于特定实现,处理器单元204可以是一个或者多个处理器的集合或者可以是多处理器核。进而,可以使用一个或者多个异构处理器系统来实现处理器单元204,在异构处理器系统中,主处理器与次处理器存在于单个芯片上。作为另一说明性示例,处理器单元204可以是包含相同类型的多个处理器的对称的多处理器系统。
存储器206和永久存储208是存储设备的示例。存储设备是能够临时和/或永久存储信息的任何硬件片段。在这些示例中,存储器206可以例如是随机访问存储器或者任何其他适合的易失性或者非易失性存储设备。取决于特定实现,永久存储208可以采取各种形式。例如,永久存储208可以包含一个或者多个部件或者设备。例如,永久存储208可以是硬驱、闪存、可重写光盘、可重写磁带或者上面的一些组合。永久存储208所使用的介质也可以是可移除的。例如,可移除硬驱可以用于永久存储208。
在这些示例中,通信单元210提供与其他数据处理系统或者设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可以通过使用物理和无线通信链路的任意一个或者二者来提供通信。
输入/输出单元212允许与可以连接到数据处理系统200的其他设备的数据输入和输出。例如,输入/输出单元212可以通过键盘和鼠标提供针对用户输入的连接。进而,输入/输出单元212可以向打印机发送输出。显示器214提供向用户显示信息的机制。
用于操作系统和应用或者程序的指令位于永久存储208上。这些指令可以被加载到存储器206中以供处理器单元204执行。不同实施例的处理可以通过处理器单元204使用可以位于诸如存储器206的存储器中的计算机实现指令来执行。这些指令被称为可以由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码或者计算机可读程序代码。不同实施例中的程序代码可以被实现在不同的物理或者有形计算机可读介质上,例如存储器206或者永久存储208。
程序代码216以功能形式位于可选择性移除的计算机可读介质218上,并且其可以被加载或者传输到数据处理系统200以供处理器单元204执行。在这些示例中程序代码216和计算机可读介质218形成计算机程序产品220。在一个示例中,计算机可读介质218可以是有形形式,例如光盘或者磁盘,其被插入或者放置在作为永久存储208的一部分的驱动或者其他设备中以供传送到诸如作为永久存储208的一部分的硬驱的存储设备上。在有形形式中,计算机可读介质218也可以采取永久存储的形式,诸如连接到数据处理系统200的硬驱、U盘或者闪存。计算机可读介质218的有形形式也被称为计算机可记录存储介质。在一些实例中,计算机可记录介质218可以是不可移除的。
可选地,程序代码216可以通过到通信单元210的通信链路和/或通过到输入/输出单元212的连接而从计算机可读介质218传输到数据处理系统200。通信链路和/或连接在说明性示例中可以是物理的或者无线的。计算机可读介质也可以采取非有形介质的形式,诸如包含程序代码的通信链路或者无线传输。针对数据处理系统200示出的不同部件并不意味着对可以实现不同实施例的方式提供架构限制。可以在包括除了或者代替针对数据处理系统200示出的部件的数据处理系统中实现不同的说明性实施例。图2中示出的其他部件能够与所示的说明性示例不同。作为一个示例,数据处理系统200中的存储设备是可以存储数据的任何硬件装置。存储器206、永久存储208和计算机可读介质218是有形形式的存储设备的示例。
在另一示例中,总线系统可以用于实现通信结构202并且可以包括诸如系统总线或者输入/输出总线的一个或者多个总线。当然,可以使用在附接到总线系统的不同部件或者设备之间提供数据传输的任何适合类型的架构来实现总线系统。此外,通信单元可以包括用于发送和接收数据的一个或者多个设备,诸如调制解调器或者网络适配器。而且,存储器可以例如是存储器206或者诸如在可以存在于通信结构202中的接口和存储器控制器集线器中发现的存储器206或者高速缓存。
用于执行本发明操作的计算机程序代码可以以包括诸如JavaTM、Smalltalk、C++等等的面向对象编程语言和诸如“C”编程语言或者类似编程语言的传统过程编程语言的一种或者多种编程语言的任意组合进行编写。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为单机软件包、部分在用户的计算机上并且部分在远程计算机上、或者完全在远程计算机或者服务器上执行。在后一场景中,远程计算机可以通过包括局域网(LAN)或者广域网(WAN)的任何类型的网络连接到用户计算机,或者可以连接到外部计算机(例如通过使用互联网服务提供商的互联网)。
本领域的普通技术人员将意识到,图1-图2中的硬件可以取决于实现而不同。可以除了或者代替图1-图2中描绘的硬件使用诸如闪存、等效的非易失性存储器或者光盘驱动等等的其他内部硬件或者外围设备。而且,在不偏离所公开的主题的精神和范围的情况下,除了先前提及的SMP系统之外,说明性实施例的处理可以应用于多处理器数据处理系统。
图3说明了根据本公开实现web应用304的自动处理以提供动态内容标记和输出净化的系统的高层部件。如图3所示,web应用304按照公知的方式在一个或者多个web应用服务器300上执行。接收器302是向web应用服务器300做出请求并且由web应用304处理的客户端机器。典型地,web浏览器(或者其他渲染引擎)在客户端(接收器302)上执行。因而,接收器302和服务器304通常与图1中示出的“客户端”和“服务器”相对应。如这里使用的,短语“web应用”应该被宽泛地理解为包括生成诸如HTML的标记语言文档的服务器侧进程、部件和/或功能。web应用典型地包括但不局限于HTTP守护进程(即web服务器)、J2EE小服务程序、PHP或者等效脚本、应用服务器等等。尽管从web应用304输出的页面典型地是诸如HTML的标记语言页面,但是这并非是限制,这里描述的技术可以利用任何标记语言格式(例如XML、HDML、WML等等)的输出实现。如公知的,典型地,HTML文档在HTTP请求-响应交换中作为数据流从web应用304输出。术语“浏览器”同样应该被宽泛地理解为覆盖HTTP浏览器、插件或者用于输出(例如渲染)标记语言或者等效数据的其他客户端侧代码。
系统包括图3中通过动态内容标记功能306和净化过滤器308示出的一对处理。如将解释的,处理306和处理308优选地被在逻辑上“链接”,但是它们不需要在物理链接或者甚至不需要在相同的运行时环境内操作。因而,这些处理在图3中被示出为在web应用服务器300内执行但是该图示只是出于方便;所公开技术的技术优点在于这些操作的去耦合,如现在更加详细描述的。
动态内容标记功能306操作以向正由web应用304生成的每一个动态生成输出307提供动态输出标记309。如现有技术公知的,每一个动态生成输出307可以具有其自己的关联(且唯一)的上下文(例如HTML、JavaScript和其他),该上下文与web应用输出内的一个或者多个其他动态生成输出的上下文不同。动态内容标记功能306通常操作以标记正由web应用输出的动态生成内容307的每一片段以生成动态输出标记309。一个或者多个标记的输出309连同也由web应用生成的静态输出一起被供应到输出缓冲器310。当然,静态和动态输出的数量是可变的,并且可以存在零个或者更多个静态输出以及(在使用所公开的技术时)至少一个或者多个动态输出。输出缓冲器310因而以包括静态输出305(未标记)和动态输出309(已标记)的组合页面形式存储web应用输出。优选地,每一个动态生成输出307被标记以降低遗漏净化的可能性。
动态内容标记功能306可以按照几种方式之一实现。简单的方案是将其实现为库函数,web应用304调用该库函数以标记和渲染动态生成输出307。该方案假设代码写入器指定哪些内容是动态的。基于库的方案允许向现有的web应用容易地添加代码注入防御。备选地,假设(web应用响应于请求生成的)所有内容是动态的以使得降低偶然遗漏要被标记的内容的风险。该方案可以与应用模型-浏览-控制器设计方案的web应用和/或诸如其中纯动态内容部分被注入在纯状态内容内部的Java Server Pages(JSP)之类的技术一起使用。在该备选中,在应用容器内实现动态内容标记功能,该应用容器被修改以标记包括在静态上下文中的所有内容。在根据级联的静态和动态内容来构建代码时不应该使用该备选方案。
因而,动态内容标记功能306可以是单机代码或者web应用本身的本地代码。
现在返回参照图3,静态和标记的动态(组合)输出311被供应到净化过滤器308。通常,过滤器308方便地被实现为包括由处理器执行的专用计算机程序指令的计算机程序代码。尽管如上面提到的过滤器308被示出为在web应用服务器300操作环境中执行,但是这并非是限制。方便地,过滤器308从或者可以从web应用环境中分离并被单独部署。过滤器308可以包括一个或者多个实例(不同的进程、程序、执行线程等等),并且一个或者多个这样的过滤器能够同时处理多个应用。过滤器308的方便实现可以是代理,诸如使用图2中示出的数据处理系统部件的图1中示出的服务器。更加通常地,净化过滤器可以被实现为单机设备或者其他中间件,或者作为由服务提供商提供的主控(即受管理的)服务。这样,过滤器对由web应用输出的文档进行操作,而不依赖于用于生成文档数据的技术或者输入源。
尽管功能306和308优选地被去耦合,但是它们也可以被集成。功能306和308也可以在单个机器或者过程上执行,或者在彼此远离的几个机器(或者过程)上执行。输出缓冲器310是任何的数据存储或者存储器,并且其可以与其他功能306和308中的一个或者二者共存,或者缓冲器可以对于部件306和308中的一个或者二者远程可访问。这些部件功能和数据存储之间的通信可以是安全的(例如使用SSL、TLS等等)。如已经提到的,它们可以是系统部件的任意一个的一个或者多个实例。
在操作中,由web应用(响应于给定的客户端请求)生成的动态生成内容通过动态内容标记功能306提前准备以用于净化。优选地,如将看见的,通过将动态生成内容包围在动态内容指示符之间来标记该动态生成内容。按照这种方式生成标记使得其不与合法应用内容冲突并且还防御攻击者可能试图使用以绕开转义的有意冲突。然后,在完成文档生成之后但是在将其输出(传送)到接收器302之前,通过净化过滤器308处理应用生成的内容。过滤器使用动态内容标识符以标识和定位需要输出转义的内容。通常,过滤器308检测其中放置了动态生成内容的适当上下文,然后应用适当的转义。按照这种方式,即使输出内容从不在相同运行时环境中操作的多个输入源进行组装,也能够提前充分准备输出内容用于转义。通过去耦合标记和过滤处理,在完成所有其他应用处理并且完整文档已准备好向请求的终端用户传送之后添加转义。
图8是示出(图3的)净化过滤器308的基本操作的过程流800。在步骤802处,过滤器解析web应用以标识和定位标记的动态输出。在步骤804处,过滤器执行上下文检测。使用已知的上下文检测技术执行该检测并且该检测支持对所有动态字符串的容易而简单的检测(具体地说,由于在操作中此时已经构建了最终文档)。在步骤806处,过滤器应用转义。经处理的文档然后在步骤808中被发送到接收器以完成处理。
可以完全改变图8中用于上下文检测(步骤804)的特定技术或者机制。对于标识完整web应用文档的每一个元素的上下文的问题存在若干已知的方案。对于HTML(或者XML)的一种公知方案是使用XML解析器解析该文档。一旦解析了文档,仅动态(先前标记的)内容能够存在于文本值内部。对于每一个这样的值,然后例如基于包围的HTML标签或者属性名称来执行上下文检测。因而,例如包围标签“script”意味着该文本处于脚本上下文中,包围标签“div”意味着该文本处于HTML上下文中,包围标签属性“onclick”意味着该属性具有HTML和脚本上下文二者等等。而且,标记的内容能够位于脚本上下文中脚本语言源代码内部。该方案的示例可以是简单的JavaScript警告,例如“alert(Hello,BEGIN(123)ExampleTextEND(123))”。如下面更加详细描述的,字符串BEGIN(123)和END(123)是标识相关内容(“ExampleText”)的标记符。该示例中的上下文检测可以在与编程语言语法(诸如JavaScript)相关联的解析器中实现,该解析器将理解所标记的输出被包括在字符串字面上下文中并且要求对该上下文的适当转义。当然,上面的示例只是说明性的。步骤804中的上下文检测提供继而用于定位转义字符的信息。
图4-图7示出了关于由图3中的web应用304生成的HTML代码小片段的动态内容标记和过滤处理。假设熟悉基本的HTML。图4是由图3的web应用生成的示例web页面标记的一部分,其示出了包括动态内容402(例如用户全称)的JSP代码小片段400。这是在由本公开设计的任何处理之前来自web应用的传统输出。如果不进行净化并且用户能够修改其名称,则用户能够容易地向结果文档注入定制脚本。这就是XSS攻击。图5示出了已被XSS攻击修改以包括被称为黑客()(hack())的定制脚本函数502的示例web页面标记500(诸如在图4中示出)。尽管对该代码的手动检查很容易暴露该攻击,但是对注入脚本的自动检测非常困难。
为了解决该问题,并且如上面提到的,所公开的技术提前“标记”动态内容(即在web应用输出之后但是在传送到接收方之前)。图6示出了在根据本公开的教导标记动态内容之后的示例web页面标记600(诸如在图5中示出)。可以看出,动态标记功能在输出周围放置标记符602和604在结果内容中。例如,在一个实施例中,每个会话生成字符串(例如ABC123),并且该字符串用作标记符。在动态标记功能(<%==>)添加该标记符之后,出现如图6中所示的结果HTML。具体地说,并且在该示例中,标记符包括BEGIN标记符602和END标记符604。该术语仅代表该方案。每一个标记符可以具有与其相关联的不同字符串,并且可以按照一些其他方式来标识标记符。因而,通常,通过将动态生成内容包围在两个字符串指示符602和604内来标记该动态生成内容。生成这样的指示符以便不与合法的应用内容冲突,并且还防御攻击者可能选择以用于(试图)绕开转义的有意冲突。一种方案是使用随机或者伪随机字符串值,但是这并非是限制。用于表明标记的随机值也可以被包括在文档的开始处,该方案允许净化过滤器容易地建立其值。
用于生成动态内容标记符的另一方案是使用标记内容的服务器生成的数字签名(或者其他编码),然后使用该签名的值作为标记符。在该方案中,净化过滤器(位于标记的下游)能够与净化功能相关联地验证签名。私钥或者公钥签名方案可以用于该目的。如果使用私钥数字签名方案用于标记,则利用私钥配置生成标记符的动态内容标记功能(或者其他部件)以及净化过滤器本身,优选地在初始化时(或者以其他方式在使用之前)。如果使用公钥数字签名方案,则动态内容标记功能可以使用私钥以生成标记符,而净化过滤器可以使用相关联的公钥来验证该标记符(即签名),其中公钥可以从中央储存库获取。已知的公钥加密系统可以用于该目的。更加通常地,任何非对称或者对称的秘钥技术可以用于生成和/或验证标记符。
总之,这里描述的标记动态生成输出(或者输出的一部分)意味着将标记中的一个或者多个标记符(或指示符)相关联以定位和标识动态生成内容。
如上面提到的,一旦按照这种方式“标记”了标记,则净化过滤器能够容易地(并且以自动方式)检测所有动态字符串。如上面提到的,由于此时已经构建了文档,因此净化过滤器能够标识该上下文并且对于标记符之间的字符串应用转义。最终的文档片段700继而具有图7中示出的形式。该片段包括输出转义702。
按照这种方式,所公开的技术提供利用包含多个包括动态输出的上下文的内容进行操作的输出净化。
系统(并且具体地说是动态输出标记309和净化过滤器308)通过提前标记动态内容并且然后执行输出净化来操作以降低注入代码的风险。
这里描述的技术具有各种优点。其不依赖于任何特定的执行环境或者任何特定的一个(或者多个)输入源。不需要将任何输入标记为不信任或者不需要在生成输出内容时理解该输出内容。基本思想在于在执行净化之前充分准备好(标记)输出内容。按照这种方式,能够从多个地点、多个服务器、多个技术等等组装最终内容但是不需要在给定的运行时环境中操作。该技术将关于需要净化内容的决策与实际内容净化去耦合,以使得能够在所有内容已准备好被检查之后进行净化。通过将内容标记与转义去耦合(隔离),这两个操作能够在不同的地点发生,并且单个转义过滤器代理能够针对从多个执行环境生成的内容(以及对利用不同环境创建的单个内容)进行操作。而且,该方案不要求任何代码预处理从而增加遗漏转移或者任何显式代码的使用以使内容被转义。该方案延迟了转义直到完整的文档可用但是有利地支持将要在不同环境中生成的文档的部分。
与已知的输入净化过滤器不同,上述技术提供遵守尊重其中渲染动态内容的上下文的自动内容净化。所公开方法的使用不要求web应用代码的任何改变,并且因而非常容易采用。如上面提及的,重要的优点在于能够从web应用中剥离净化过滤器并且单独部署。一个或者多个过滤器能够同时用于多个应用。由于所有动态输出都被标记并且继而净化,因而高度降低了例如由于遗漏净化而导致的代码注入漏洞的风险。
不同描绘的实施例中的方框图示出了装置、方法和计算机程序产品的一些可能实现的架构、功能性和操作。就此而言,流程图或者方框图中的每一个方框可以代表代码的模块、段或者部分,其包括用于实现指定的一个或者多个功能的一个或者多个可执行指令。在一些可选实现中,方框中标注的一个或者多个功能可以不按照图中标注的顺序发生。例如,在一些情况中,取决于所涉及的功能性,可以基本上同时执行连续示出的两个方框,或者有时可以按照相反的顺序执行所示的方框。
所公开的主题能够采取完全硬件实施例、完全软件实施例或者包含硬件和软件元素二者的实施例的形式。在优选实施例中,本发明实现为软件,其包括但不局限于固件、驻留软件、微代码等等。
所公开的主题能够采取可从计算机可用或者计算机可读介质访问的计算机程序产品的形式,该介质提供程序代码以供计算机或者任何指令执行系统使用或者结合该计算机或者任何指令执行系统使用。出于该描述的目的,计算机可用或者计算机可读介质可以是能够包含或者存储用于由指令执行系统、装置或者设备使用或者结合该指令执行系统、装置或者设备使用的程序的任何有形装置。
介质是有形的,并且其可以是电、磁、光学、电磁、红外或者半导体系统(或者装置或者设备)。计算机可读介质的示例包括半导体或者固态存储器、磁带、可移除计算机盘、随机访问存储器(RAM)、只读存储器(ROM)、硬性磁盘和光盘。光盘的当前示例包括压缩盘-只读存储器(CD-ROM)、压缩盘-读写(CD-R/W)和DVD。
在一个实施例中,程序指令被存储在数据处理系统中的计算机可读存储介质中,并且这些指令经由网络从远程数据处理系统进行下载。在可选实施例中,指令被存储在服务器数据处理系统中的计算机可读存储介质中,并且指令经由网络被下载到远程数据处理系统用于在具有远程系统的计算机可读存储介质中使用。
尽管上面描述了由本发明的某些实施例执行的操作的特定顺序,但是应该理解,这样的顺序是示例性的,可选实施例可以按照不同的顺序执行操作、组合某些操作、重叠某些操作等等。说明书中对于给定实施例的引述表明所描述的实施例可以包括特定的特征、结构或者特性,但是每一个实施例不一定必须包括该特定的特征、结构或者特性。
最后,尽管单独描述了系统的给定部件,但是本领域的普通技术人员将意识到,在给定的指令、程序序列、代码部分等等中可以组合或者共享这些功能的一些。
如上所述,适合用于存储和/或执行程序代码的数据处理系统将包括直接或者经过系统总线间接耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、批量存储和提供至少一些程序代码的临时存储以降低在执行期间必须从批量存储获取代码的次数的高速缓冲存储器。输入/输出或者I/O设备(包括但不局限于键盘、显示器、指点设备等等)能够或者直接或者经过介于之间的I/O控制器耦合到系统。网络适配器也可以耦合到系统以使得数据处理系统能够经过介于之间的私人或者公共网络耦合到其他数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器和以太网卡只是网络适配器的当前可用类型的一些。
出于说明和描述目的提供了所公开主题的描述,并且并非旨在是排他的或者局限于所公开形式的发明。对于本领域的普通技术人员来说许多修改和变化将是明显的。选择和描述实施例以最佳解释本发明的原理、实践应用,并且使本领域的其他普通技术人员对于具有适合于期望的特定用途的各种变型的各种实施例理解本发明。
如所提及的,这里描述的技术可以在包括简单的n层架构、门户网站、联合系统等等各种服务器侧架构中实现或者结合其实现。
如上所述,实现所公开技术的输出处理器、数据存储和处理机机制可以实现为服务、或者作为单机机器、系统、设备、程序或者过程。
这里使用的短语“动态输出”应该被宽泛地理解为指代包括动态生成内容的标记语言文档的任何部分,无论该输出与在页面上(当渲染该页面时)可见的内容相关或者以其他方式隐藏不见。
这里使用的短语“完整的标记语言文档”应该被宽泛地理解筑为指代在包括的所有动态内容在文档生成过程期间已经发生之后由web应用生成的标记语言文档或者页面。
净化过滤器可以在基于云的操作环境中实现。云计算是一种服务递送模型,其支持到在具有最小管理工作或者与服务供应商的交互的情况下能够被快速提供和释放的可配置计算资源(例如网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便且按需的网络访问。该云模型可以包括至少五个特性、至少三个服务模型以及至少四个部署模型,所有这些在Peter Mell和Tim Grance于2009年10月7日发表的“Draft NIST WorkingDefinition of Cloud Computing”中进行了更加具体的描述和限定。
本申请与2010年7月22日递交的序列号No.12/841747并且发明名称为“Method and apparatus for context-aware output escapingusing dynamic content marking”的申请相关。

Claims (21)

1.一种用于防御跨站脚本攻击的方法,包括:
响应于web应用请求,生成包括静态内容以及一个或者多个动态输出的完整的标记语言文档;
标记所述完整的标记语言文档中的所述一个或者多个动态输出的每一个动态输出;
在响应于所述web应用请求而输出所述完整的标记语言文档之前,净化所标记的动态输出的每一个;以及
输出所述完整的标记语言文档。
2.如权利要求1所述的方法,其中所述标记步骤将一个或者多个指示符与特定的动态输出相关联。
3.如权利要求2所述的方法,其中指示符是具有特定值的数据串。
4.如权利要求3所述的方法,其中所述特定值是随机或者伪随机数据串。
5.如权利要求3所述的方法,其中所述特定值是所述动态输出的函数。
6.如权利要求5所述的方法,其中所述函数是所述动态输出的数字签名。
7.如权利要求1所述的方法,其中所述标记步骤调用执行标记操作的库函数。
8.如权利要求1所述的方法,其中在响应于所述web应用请求而生成所述完整的标记语言文档时执行所述标记步骤。
9.如权利要求2所述的方法,其中所述净化步骤在所述完整的标记语言文档中、由所述一个或者多个指示符标识的一个或者多个位置处插入输出转义。
10.如权利要求1所述的方法,其中所述动态输出至少包括第一和第二动态生成的输出,其中每一个动态生成的输出与不同的上下文相关联。
11.一种用于防御跨站脚本攻击的装置,包括:
处理器;
计算机存储器,保存有在由所述处理器执行时执行一种方法的计算机程序指令,所述方法包括:
响应于web应用请求,生成包括静态内容以及一个或者多个动态输出的完整的标记语言文档;
标记所述完整的标记语言文档中的所述一个或者多个动态输出的每一个动态输出;
在响应于所述web应用请求而输出所述完整的标记语言文档之前,净化所标记的动态输出的每一个;以及
输出所述完整的标记语言文档。
12.如权利要求11所述的装置,其中所述标记步骤将一个或者多个指示符与特定的动态输出相关联。
13.如权利要求12所述的装置,其中指示符是具有特定值的数据串。
14.如权利要求13所述的装置,其中所述特定值是随机或者伪随机数据串。
15.如权利要求13所述的装置,其中所述特定值是所述动态输出的函数。
16.如权利要求15所述的装置,其中所述函数是所述动态输出的数字签名。
17.如权利要求11所述的装置,其中所述标记步骤调用执行标记操作的库函数。
18.如权利要求11所述的装置,其中在响应于所述web应用请求而生成所述完整的标记语言文档时执行所述标记步骤。
19.如权利要求12所述的装置,其中所述净化步骤在所述完整的标记语言文档中、由所述一个或者多个指示符标识的一个或者多个位置处插入输出转义。
20.如权利要求11所述的方法,其中所述动态输出至少包括第一和第二动态生成的输出,其中每一个动态生成的输出与不同的上下文相关联。
21.一种位于计算机可读介质中的计算机程序产品,其在数据处理系统中使用以防御跨站脚本攻击,所述计算机程序产品保存有计算机程序指令,所述计算机程序指令在由所述数据处理系统执行时执行权利要求1到10的任意一项的方法。
CN201180036200.7A 2010-07-22 2011-06-30 用于防御跨站脚本攻击的方法和装置 Active CN103026684B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/841,814 2010-07-22
US12/841,814 US10375107B2 (en) 2010-07-22 2010-07-22 Method and apparatus for dynamic content marking to facilitate context-aware output escaping
PCT/EP2011/061061 WO2012010394A1 (en) 2010-07-22 2011-06-30 Cross-site scripting attack protection

Publications (2)

Publication Number Publication Date
CN103026684A true CN103026684A (zh) 2013-04-03
CN103026684B CN103026684B (zh) 2016-01-06

Family

ID=44532769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180036200.7A Active CN103026684B (zh) 2010-07-22 2011-06-30 用于防御跨站脚本攻击的方法和装置

Country Status (5)

Country Link
US (1) US10375107B2 (zh)
CN (1) CN103026684B (zh)
DE (1) DE112011101831B4 (zh)
GB (1) GB2495681B (zh)
WO (1) WO2012010394A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104519045A (zh) * 2013-09-30 2015-04-15 瞻博网络公司 破坏漏洞扫描的结果
CN104601540A (zh) * 2014-12-05 2015-05-06 华为技术有限公司 一种跨站脚本XSS攻击防御方法及Web服务器
CN104881608A (zh) * 2015-05-21 2015-09-02 北京工业大学 一种基于模拟浏览器行为的xss漏洞检测方法
CN105471821A (zh) * 2014-08-29 2016-04-06 腾讯科技(深圳)有限公司 一种基于浏览器的信息处理方法及装置
CN106603572A (zh) * 2017-01-16 2017-04-26 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置
CN106909846A (zh) * 2017-01-16 2017-06-30 安徽开源互联网安全技术有限公司 一种基于虚拟解析的漏洞检测方法及其装置
CN107547487A (zh) * 2016-06-29 2018-01-05 阿里巴巴集团控股有限公司 一种防止脚本攻击的方法及装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567400B (zh) * 2010-12-31 2014-09-03 阿里巴巴集团控股有限公司 一种实现Web访问的方法和Web服务器
US8646088B2 (en) * 2011-01-03 2014-02-04 International Business Machines Corporation Runtime enforcement of security checks
US8874687B2 (en) * 2011-04-07 2014-10-28 Infosys Technologies, Ltd. System and method for dynamically modifying content based on user expectations
US20130232576A1 (en) * 2011-11-18 2013-09-05 Vinsula, Inc. Systems and methods for cyber-threat detection
US9069374B2 (en) * 2012-01-04 2015-06-30 International Business Machines Corporation Web video occlusion: a method for rendering the videos watched over multiple windows
CN102999723B (zh) * 2012-11-20 2015-11-18 焦点科技股份有限公司 主动防御xss攻击的数据防御组件生成方法及其装置
US8943589B2 (en) 2012-12-04 2015-01-27 International Business Machines Corporation Application testing system and method
US9294538B1 (en) * 2013-02-12 2016-03-22 Amazon Technologies, Inc. Dynamic content injection
US9774620B2 (en) * 2013-06-18 2017-09-26 Microsoft Technology Licensing, Llc Automatic code and data separation of web application
CN103577188B (zh) * 2013-10-24 2016-11-16 北京奇虎科技有限公司 防御跨站脚本攻击的方法及装置
DK3130123T3 (da) * 2014-04-11 2021-10-04 Hdiv Security S L Detektering af manipulation af applikationer
CN106789899B (zh) * 2016-11-22 2020-02-18 中国银联股份有限公司 一种基于html5的跨域消息发送方法及装置
US10382374B2 (en) * 2017-04-06 2019-08-13 International Business Machines Corporation Privileged and protected announcements, broadcasts, or posts
CN107423340A (zh) * 2017-05-05 2017-12-01 腾讯科技(深圳)有限公司 用于网页渲染的参数处理方法和装置
CN110650117B (zh) * 2019-08-01 2022-03-25 平安科技(深圳)有限公司 跨站攻击防护方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437660B1 (en) * 2000-06-23 2008-10-14 Microsoft Corporation Editable dynamically rendered web pages
CN101356535A (zh) * 2005-11-10 2009-01-28 株式会社Ntt都科摩 一种检测和防止java脚本程序中不安全行为的方法和装置
CN101686130A (zh) * 2008-09-24 2010-03-31 西门子(中国)有限公司 一种预防跨站脚本攻击的系统
CN101741645A (zh) * 2009-12-17 2010-06-16 成都市华为赛门铁克科技有限公司 存储式跨站脚本攻击检测方法、装置及系统及攻击检测装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231668A (en) * 1991-07-26 1993-07-27 The United States Of America, As Represented By The Secretary Of Commerce Digital signature algorithm
US6605120B1 (en) 1998-12-10 2003-08-12 International Business Machines Corporation Filter definition for distribution mechanism for filtering, formatting and reuse of web based content
US6606525B1 (en) 1999-12-27 2003-08-12 Motorola, Inc. System and method of merging static data in web pages
US6880083B1 (en) 1999-12-31 2005-04-12 Intel Corporation Method and apparatus for creating and executing secure scripts
WO2001057721A2 (en) 2000-02-04 2001-08-09 America Online Incorporated Dynamic web page generation
WO2001073563A1 (en) * 2000-03-24 2001-10-04 Dotrocket, Inc. A system and method for increasing data packet transfer rate in a computer network
US8082491B1 (en) * 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
DE10247977A1 (de) 2002-10-15 2004-04-29 Robert Bosch Gmbh Verfahren und System zur Überprüfung der Funktionsfähigkeit eines Teilchendetektors
US20040187077A1 (en) 2003-03-19 2004-09-23 International Business Machines Corporation Dynamic server page meta-engines with data sharing for dynamic content
US7607172B2 (en) * 2004-03-02 2009-10-20 International Business Machines Corporation Method of protecting a computing system from harmful active content in documents
JP5063258B2 (ja) * 2007-08-23 2012-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
US8914774B1 (en) * 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US20090292983A1 (en) * 2007-11-30 2009-11-26 Kunal Anand Html filter for prevention of cross site scripting attacks
US8266187B2 (en) 2008-02-19 2012-09-11 Hewlett-Packard Development Company, L.P. Integration of static and dynamic data for database entities and the unified presentation thereof
US8910272B2 (en) * 2008-02-28 2014-12-09 Hob Gmbh & Co. Kg Computer communication system for communication via public networks
CN101540645A (zh) 2008-03-21 2009-09-23 华为技术有限公司 动态内容分发方法和装置
US8095574B2 (en) 2008-07-31 2012-01-10 International Business Machines Corporation Dynamically mapping and maintaining a customized method set of tags particular to an extention point
US8615804B2 (en) * 2010-02-18 2013-12-24 Polytechnic Institute Of New York University Complementary character encoding for preventing input injection in web applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437660B1 (en) * 2000-06-23 2008-10-14 Microsoft Corporation Editable dynamically rendered web pages
CN101356535A (zh) * 2005-11-10 2009-01-28 株式会社Ntt都科摩 一种检测和防止java脚本程序中不安全行为的方法和装置
CN101686130A (zh) * 2008-09-24 2010-03-31 西门子(中国)有限公司 一种预防跨站脚本攻击的系统
CN101741645A (zh) * 2009-12-17 2010-06-16 成都市华为赛门铁克科技有限公司 存储式跨站脚本攻击检测方法、装置及系统及攻击检测装置

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
DI LUCCA G A ET AL.: "《Identifying cross site scripting vulnerabilities in Web applications》", 《TELECOMMUNICATIONS ENERGY CONFERENCCE》, 11 September 2004 (2004-09-11) *
EUROSEC ET AL.: "《Filtering JavaScript to Prevent Cross-Site Scripting》", 《HTTP://WWW.SECOLOGIC.ORG/DOWNLOADS/WEB/051207B_EUROSEC_DRAFT_WHITEPAPER_FILTERING_JAVASCRIPT.PDF》, 31 December 2005 (2005-12-31) *
GARY WASSERMANN ET AL.: "《Static Detection of Cross-Site Scripting Vulnerabilities》", 《ACM/IEE 30TH INTERNATIONAL CONFERENCE ON》, 10 May 2008 (2008-05-10) *
MARTIN JOHNS ET AL.: "《XSSDS: Server-side Detection of Cross-site Scripting Attacks》", 《2008 ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE》, 8 December 2008 (2008-12-08) *
PRITHVI BISHT ET AL.: "《XSS-GUARD: Precise Dynamic Prevention of Cross-Site Scripting Attacks》", 《DETECTION OF INTRUSIONS AND MALWARE,AND VULNERABILITY ASSESSMENT》, 10 July 2008 (2008-07-10) *
SHANMUGAM J ET AL.: "《Risk mitigation for cross site scripting attacks using signature based model on the server side》", 《COMPUTER AND COMPUTATIONAL SCIENCES》, 13 August 2007 (2007-08-13) *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104519045A (zh) * 2013-09-30 2015-04-15 瞻博网络公司 破坏漏洞扫描的结果
CN105471821A (zh) * 2014-08-29 2016-04-06 腾讯科技(深圳)有限公司 一种基于浏览器的信息处理方法及装置
CN105471821B (zh) * 2014-08-29 2019-09-17 腾讯科技(深圳)有限公司 一种基于浏览器的信息处理方法及装置
CN104601540A (zh) * 2014-12-05 2015-05-06 华为技术有限公司 一种跨站脚本XSS攻击防御方法及Web服务器
CN104601540B (zh) * 2014-12-05 2018-11-16 华为技术有限公司 一种跨站脚本XSS攻击防御方法及Web服务器
CN104881608A (zh) * 2015-05-21 2015-09-02 北京工业大学 一种基于模拟浏览器行为的xss漏洞检测方法
CN104881608B (zh) * 2015-05-21 2018-03-16 北京工业大学 一种基于模拟浏览器行为的xss漏洞检测方法
CN107547487A (zh) * 2016-06-29 2018-01-05 阿里巴巴集团控股有限公司 一种防止脚本攻击的方法及装置
CN106603572A (zh) * 2017-01-16 2017-04-26 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置
CN106909846A (zh) * 2017-01-16 2017-06-30 安徽开源互联网安全技术有限公司 一种基于虚拟解析的漏洞检测方法及其装置
CN106909846B (zh) * 2017-01-16 2020-04-24 安徽开源互联网安全技术有限公司 一种基于虚拟解析的漏洞检测方法及其装置
CN106603572B (zh) * 2017-01-16 2020-07-14 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置

Also Published As

Publication number Publication date
US20120023395A1 (en) 2012-01-26
WO2012010394A1 (en) 2012-01-26
DE112011101831T5 (de) 2013-03-28
GB201302336D0 (en) 2013-03-27
GB2495681B (en) 2018-04-04
US10375107B2 (en) 2019-08-06
CN103026684B (zh) 2016-01-06
GB2495681A (en) 2013-04-17
DE112011101831B4 (de) 2020-10-08

Similar Documents

Publication Publication Date Title
CN103026684B (zh) 用于防御跨站脚本攻击的方法和装置
JP6943356B2 (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
CN103744802B (zh) Sql注入攻击的识别方法及装置
US9356937B2 (en) Disambiguating conflicting content filter rules
US10678910B2 (en) Modifying web page code to include code to protect output
US9098719B2 (en) Securing unrusted content for collaborative documents
US8856874B2 (en) Method and apparatus for serving content elements of a markup language document protected against cross-site scripting attack
US9160756B2 (en) Method and apparatus for protecting markup language document against cross-site scripting attack
US9032519B1 (en) Protecting websites from cross-site scripting
US10372899B2 (en) Method and apparatus for context-aware output escaping using dynamic content marking
CN104954346B (zh) 基于对象分析的攻击识别方法及装置
CN102447559A (zh) 针对复合资源文档创建数字签名的方法和系统
CN106970820A (zh) 代码存储方法及代码存储装置
CN109698831B (zh) 数据防护方法和装置
CN106529317B (zh) 基于Shadow DOM的Web应用加解密方法
Gajek et al. Breaking and fixing the inline approach
CN109376133A (zh) 文件访问方法及文件访问系统
CN104954345B (zh) 基于对象分析的攻击识别方法及装置
CN109241484A (zh) 一种基于加密技术的网页数据的发送方法及设备
CN102893576A (zh) 用于减缓跨站弱点的方法和装置
Moshchuk et al. Content-based isolation: rethinking isolation policy design on client systems
CN103577188B (zh) 防御跨站脚本攻击的方法及装置
Van Acker et al. Javascript sandboxing: Isolating and restricting client-side javascript
US10257262B2 (en) Mobile itinerant software agent carrying itinerary and data within
CN103902606A (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