CN101296087B - 用于防止跨站攻击的方法和系统 - Google Patents

用于防止跨站攻击的方法和系统 Download PDF

Info

Publication number
CN101296087B
CN101296087B CN2008100923209A CN200810092320A CN101296087B CN 101296087 B CN101296087 B CN 101296087B CN 2008100923209 A CN2008100923209 A CN 2008100923209A CN 200810092320 A CN200810092320 A CN 200810092320A CN 101296087 B CN101296087 B CN 101296087B
Authority
CN
China
Prior art keywords
webpage
page
user
website
portal site
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
CN2008100923209A
Other languages
English (en)
Other versions
CN101296087A (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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN101296087A publication Critical patent/CN101296087A/zh
Application granted granted Critical
Publication of CN101296087B publication Critical patent/CN101296087B/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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
    • 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

Abstract

公开了有效跨站攻击的防护,其方法包括:将网页被存储在网站上,该网页被组织成不接受输入的入口网页和不是入口网页的保护的网页;从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据;确定所请求的网页是入口网页还是保护的网页,并且如果所请求的网页被确定为保护的网页,则进一步基于所述标识数据确定所述用户应用是否被授权;基于所述引用字符串确定所述引用网页是否存储在网站上; 如果所述用户应用被确定为被授权并且所述引用网页被确定存储在网站上,则将所请求的网页传送到所述用户应用; 以及如果所述用户应用被确定为未被授权或者所述引用网页被确定没有存储在网站上,则将该请求重新定向到所述入口网页之一。

Description

用于防止跨站攻击的方法和系统
技术领域
本发明一般涉及跨站(cross-site)攻击的防护,并且至少一个特定实施方式涉及跨站脚本(cross-site scripting)和跨站请求伪造(forgery)攻击的防护。
背景技术
虽然网络应用在虚拟环境中运行,但是它们中的一些,包括在线拍卖或银行应用,涉及真实世界的货币交易。网络用户和网站两者都在保护这些货币交易中存在既得利益(vested interest),这就给黑客操控提供了有吸引力的目标。
对这些安全性很重要的网络应用的关键弱点的恶意利用被持续的开发设计出来,其中跨站脚本和跨站请求伪造攻击特别受黑客偏爱。这些攻击的先锋(vanguard)是恶意链接,这样的恶意链接被感染了脚本或伪造的输入,它们通过电子通信被呈现给合法的用户。当合法用户无辜地(innocently)选择这个恶意链接时,就使得脚本能够在用户浏览器和目标网站的安全上下文中执行。
虽然存在传统的客户端和服务器端技术来保护免于跨站攻击,但是这些方案通常是不完善的。例如,这些典型的方案中的一些仅针对会话盗窃攻击,所述会话盗窃攻击对会话的完整性进行攻击。
发明内容
根据一个一般的实施方式,网页存储在网站上,所述网页被组织成不接受输入的入口网页(entry pages)和不是入口网页的保护的网页(protectedpages),以及基于用户标识符和秘密密钥在网站对网络浏览器应用进行认证。基于认证网络浏览器应用,标识cookie被从网站传送到网络浏览器应用,并且在网关接收来自网络浏览器应用的请求以接收所请求的网页和标识cookie,该请求包括超文本传输协议(Hypertext Transfer Protocol,“HTTP”)引用字符串(referer string),该引用字符串包括引用网页(referring web page)的统一资源定位符(“URL ”)。在网关确定所请求的网页是入口网页还是保护的网页。如果确定所请求的网页是保护的网页,则基于所接收的标识cookie进一步在网关确定网络浏览器是否被认证,以及基于HTTP引用字符串来确定该引用网页是否存储在网站上。如果网络浏览器应用被确定为被认证并且如果引用网页被确定为存储在网站上,则所请求的网页被从网站传送到网络浏览器应用,而如果网络浏览器应用被确定为未被认证或者引用网页被确定为没有存储在网站上,则所述请求在网关被重新定向(redirect)到入口网页之一。如果所请求的网页被确定为入口网页或者该请求被重新定向到入口网页,则在网关去除来自请求的输入数据,由此产生剥离的(stripped)请求,并且如果所请求的网页被确定为入口网页或者该请求被重新定向到入口网页,则基于产生剥离的请求,将入口网页之一从网站传送到网络浏览器。
根据另一个一般的实施方式,网页存储在网站上,所述网页被组织成不接受输入的入口网页和不是入口网页的保护的网页。从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据,并且确定所请求的网页是入口网页还是保护的网页。如果所请求的网页被确定为保护的网页,则基于所述标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站上,并且如果用户应用被确定为被授权并且引用网页被确定为存储在网站上,则所请求的网页被传送到用户应用。如果用户应用被确定为未被授权或者引用网页被确定为没有存储在网站上,则该请求被重新定向到入口网页之一。
实施方式可以包括一个或多个以下特征。例如,如果所请求的网页被确定为入口网页或者该请求被重新定向到入口网页,则从该请求中去除输入数据,由此产生剥离的请求,并基于剥离的请求,入口网页可以被传送到用户应用。用户应用可以在网站被授权或被认证,例如,使用秘密密钥、使用会话URL、使用HTTP认证、或用户应用端的安全套接字协议层(“SSL”)。基于认证用户应用,可能是cookie的标识数据可以从网站传送到用户应用。网页可以在网站被组织成入口网页和保护的网页。可以在网关接收该请求。保护的网页还可以包括应用、小服务程序、或脚本。使用用户应用反向导航控制(backward navigation control),可以进行保护的网页之间的导航。用户应用可以是在用户设备上执行的网络浏览器应用。引用字符串可以是HTTP引用字符串,并且可以存储引用网页的URL。
在此外的示例中,至少一个入口网页可以是登录页、主页、或入口扉页(portal front page)。网站可以是在线银行网站、拍卖网站、在线零售网站、网络邮件网站、搜索引擎网站、或
Figure S2008100923209D00031
入口网站。保护的网页可以是在线银行交易页、在线银行菜单页、在线银行认证页、在线拍卖搜索结果页、在线拍卖登录页、在线拍卖认证页、在线拍卖投标输入页、在线拍卖投标验证页、在线零售商搜索结果页、在线零售商购物推车页、在线零售商登录页、在线零售商信用卡地址验证页、在线零售商确认页、网络邮件认证页、网络菜单页、网络邮件发送页、网络邮件搜索页、网络邮件读取页、搜索引擎搜索结果页、
Figure S2008100923209D00032
入口认证页、或
Figure S2008100923209D00033
入口菜单页。标识数据可以指示用户被授权但是未被认证。
根据另一个一般实施方式,系统包括服务器和网关。服务器被配置来存储网页,所述网页被组织成不接受输入的入口网页和不是入口网页的保护的网页。网关被配置来从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据,确定所请求的网页是入口网页还是保护的网页,如果所请求的网页被确定为保护的网页,则基于标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站上,如果用户应用被确定为被授权并且如果引用网页被确定为存储在网站上,则实行所请求的网页到用户应用的传送,而如果用户应用被确定为未授权或者如果引用网页被确定为没有存储在网站上,则将该请求重新定向到入口网页之一。
根据另一个一般实施方式,计算机程序产品被有形地体现在机器可读存储介质中。计算机程序产品包括指令,当由机器读取时,该指令操作以使数据处理装置将网页存储在网站上,所述网页被组织成不接受输入的入口网页和不是入口网页的保护的网页,从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据,以及确定所请求的网页是入口网页还是保护的网页。该计算机程序产品还包括指令,当由机器读取时,该指令操作以使数据处理装置在所请求的网页被确定为保护的网页的情况下,基于标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站上,如果用户应用被确定为被授权并且如果引用网页被确定为存储在网站上,则将所请求的网页传送到用户应用,而如果用户应用被确定为未被授权或者如果引用网页被确定为没有存储在网站上,则将该请求重新定向到入口网页之一。
以下在附图和说明书中阐述一个或多个实施方式的细节。从说明书、附图以及权利要求书中,公开内容的其它潜在的特征和优点将变得更加清楚。
附图说明
图1示出了根据一个一般实施方式的示范系统的外观。
图2示出了图1的计算机的示范内部体系结构。
图3是示出用于实施增强的跨站攻击防护的示范处理的流程图。
图4示出了示范系统,包括目标网站、以及分别与合法用户和黑客相关联的计算机。
图5到图10示出了各种示范在线应用的入口网页和保护的网页的组织。
图11是示出使用图3中描述的示范处理防护跨站脚本攻击的游动图(swim diagram)。
相似的参考标号总是代表相应的部分。
具体实施方式
图1示出了示例系统100的外观,包括网关计算机101、网站102、由合法网络用户使用的计算机104、以及由黑客使用的计算机105,全部经由网络106相连接。以下,为了描述增强的跨站攻击防护方案的目的,黑客(或“攻击者”)是用户或用户应用,其中,他们的目的在于通过他们自身动作或通过无辜第三方的中间动作(intervening action)来启动跨站攻击。但是,合法网络用户或用户应用没有启动跨站攻击的企图,虽然他们的动作不知不觉地或者鲁莽地导致了攻击的发生。例如,黑客是将包括跨站攻击脚本输入的恶意链接发送到一个或多个合法网络用户的人或程序,并且知道合法网络用户可能将选择发起跨站攻击的恶意链接。选择了恶意链接但是并不知道该链接会启动跨站攻击的恶意链接的接收者被视为合法网络用户,即使合法网络用户可能知道选择未知或非可信来源的链接通常是个坏习惯。
简单来讲,网站102被配置来存储网页,所述网页被组织成不接受输入的入口网页和不是入口网页的保护的网页。合法网络用户使用的计算机104被配置来从用户应用发送请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据。网关计算机101被配置来接收请求,确定所请求的网页是入口网页还是保护的网页,并且如果所请求的网页被确定为保护的网页,则基于标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站102。网关计算机101还被配置来在用户应用被确定为被授权并且引用网页被确定存储在网站102上的情况下,实行所请求的网页到用户应用的传送,以及如果用户应用被确定为未被授权或者如果引用网页被确定没有存储在网站102上,则将该请求重新定向到入口网页之
更具体地说,网关计算机101的硬件环境包括用于向用户显示文本和图像的显示监视器108、用于输入文本数据和用户命令到网关计算机101中的键盘109、用于指示、选择和操作显示在显示监视器108上的对象的鼠标110、固定盘驱动111、可移动盘驱动112、磁带驱动114、硬拷贝(hardcopy)输出设备115、计算机网络连接116、以及数字输入设备117。
显示图形、图像、以及文本显示监视器108包括网关计算机101使用的软件应用的用户接口、以及操作网关计算机101所需要的操作系统程序。用户使用键盘109输入命令和数据来操作和控制计算机操作系统程序以及应用程序。用户使用鼠标110来选择和操作显示在显示监视器108上的图形和文本对象,作为与网关计算机101和运行在网关计算机101上的应用的交互的一部分和网关计算机101和运行在网关计算机101上的应用的控制的一部分。鼠标110是任何类型的指示设备,并且可以是操纵杆、跟踪球、触摸板、或其它指示设备。而且,数字输入设备117允许网关计算机101捕捉数字图象,并且可以是扫描仪、数字相机、数字摄像机、或其它数字输入设备。用来提供有效跨站攻击防护的软件在本地被存储计算机可读存储介质上,比如固定盘驱动111。
在另外的实施方式中,固定盘驱动111本身可以包括许多物理驱动单元,比如独立盘的冗余阵列(“RAID”)、或者可以是在物理上位于分离的计算单元中的特大容量盘驱动(disk drive farm)或盘阵列。这样的计算机可读存储介质允许网关计算机101访问存储在可移动或非可移动存储介质上的计算机可执行处理步骤、应用程序等。
无线和有线(wireline)计算机网络连接116可以是调制解调器连接、包括以太网的局域网(“LAN”)连接、或宽带广域网(“WAN”)连接,比如数字用户线路(“DSL”)、电缆高速互联网连接、拨号连接、T-1线路、T-3线路、光纤连接、或卫星连接。网络106可以是LAN网络、公司或政府WAN网络、因特网、或其它网络中的一个或多个。网关计算机101直接或间接耦合到网站102、合法用户使用的计算机104、和/或黑客使用的计算机105,以便在网关计算机101、网站102、和/或计算机104和105之间实行单向或双向的数据传输。
计算机网络连接116使用有线或无线连接器。示例的无线连接器包括,例如,
Figure S2008100923209D00061
Figure S2008100923209D00062
无线连接器、光无线连接器、
Figure S2008100923209D00063
Figure S2008100923209D00064
标准802.11无线连接器、
Figure S2008100923209D00065
无线连接器、近场通信(“NFC”)连接器、正交频分复用(“OFDM”)超宽带(“UWB”)无线连接器、时间调制超宽带(“TM-UWB”)无线连接器、或其它无线连接器。示例的无线连接器包括,例如,
Figure S2008100923209D00066
连接器、通用串行总线(“USB”)连接器、串行端口连接器、并行端口连接器、或其它有线连接器。
可移动盘驱动112是可移动存储设备,用来从网关计算机101下载数据或向网关计算机101上载数据。可移动盘驱动112可以是软盘驱动、
Figure S2008100923209D00067
Figure S2008100923209D00068
驱动、只读压缩盘存储器(“CD-ROM”)驱动、可记录CD(“CD-R”)驱动、可重写CD(“CD-RW”)驱动、闪存、USB闪存驱动、外部硬盘驱动、thumb驱动、pen驱动、键驱动、高密度数字多功能盘(“HD-DVD”)光盘驱动、蓝光光盘驱动、全息数字数据存储(“HDDS”)光盘驱动、或者各种可记录或可重写数字多功能盘(“DVD”)驱动中的任何一个,比如可记录DVD(“DVD-R”或“DVD+R”)、可重写DVD(“DVD-RW”或“DVD+RW”)、或DVD-RAM。操作系统程序、应用、以及各种数据文件被存储在盘上,它们存储在固定盘驱动111上或可移动盘驱动112的可移动介质上。
磁带驱动114是磁带存储设备,用来从网关计算机101下载数据或向网关计算机101上载数据。磁带驱动114可以是四分之一英寸盒式磁带(cartridge)(“QIC”)、4毫米数字音频磁带(“DAT”)、8毫米数字线性磁带(“DLT”)驱动、或者其它类型的磁带。
硬拷贝输出设备115为操作系统程序和应用提供输出功能。硬拷贝输出设备115可以是打印机或任何产生有形输出对象的输出设备,所述输出对象包括文本或图像数据,或者文本或图像数据的图形表示。虽然硬拷贝输出设备115被示为直接连接到网关计算机101,但并不需要如此。例如,硬拷贝输出设备115可以经由诸如有线或无线网络的网络接口连接到计算机101。
网站102在远端存在于网络106上,并且包括一个或多个联网的(networked)数据服务器设备或服务器。网站102执行服务于由网关计算机101发送的请求的软件,其中网站102可以包括特大容量服务器(server farm)、特大容量存储器(storage farm)、或存储服务器。在替代的实施方式中,网站102被省略,与网站102相关联的功能实际上由网关计算机101执行。网站102可以是在线银行网站、在线零售网站、网络邮件网站、搜索引擎网站、
Figure S2008100923209D00071
入口网站、或其它类型的网站。
而且,虽然网关计算机101在图1中示出为台式机PC,但是在另外的实施方式中,网关计算机101可以是笔记本计算机、工作站、中型计算机、大型机、嵌入式系统、电话、手持或平板计算机(tablet computer)、PDA、或其它类型的计算机。
虽然为了简洁目的而省略了组成网站102、合法网络用户使用的计算机104、以及黑客使用的计算机105的组件的描述,但是说出下面的内容就足够了:组成网站102、合法网络用户使用的计算机104、和/或黑客使用的计算机105的计算机或各个联网的计算机的硬件环境类似于这里对于网关计算机101所描述的示范硬件环境。在替代的实施方式中,任何网关计算机101、网站102、合法网络用户使用的计算机104、和/或黑客使用的计算机105的功能被合并到单一或多个组合硬件环境中。例如,单一公共计算机可以先被黑客使用,随后被合法网络用户使用。
图2示出了网关计算机101的内部体系结构的示例。计算环境包括:计算机中央处理单元(“CPU”)200,在那里处理包括操作系统或应用的计算机指令;显示接口202,其提供通信接口,并处理在显示监视器108上呈现(rendering)图形、图像和文本的功能;键盘接口204,其提供到键盘109的通信接口;指示设备接口205,其提供到鼠标110或等同的指示设备的通信接口;数字输入接口206,其提供到数字输入设备117的通信接口;硬拷贝输出设备接口208,其提供到硬拷贝输出设备115的通信接口;随机存取存储器(“RAM”)210,在其中计算机指令和数据被存储在易失性存储设备中,用于由计算机CPU 200进行处理;只读存储器(“ROM”)211,在其中用于基本系统功能的不变低级系统代码或数据,比如基础输入和输出(“I/O”)、启动、或接收来自键盘109的键击,被存储在非易失性存储设备中;存储器220或其它适合类型的存储器(例如,随机存取存储器(“RAM”)、只读存储器(“ROM”)、可编程只读存储器(“PROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、磁盘、光盘、软盘、硬盘、可移动盒式磁带、闪存驱动),在其中存储包括操作系统221、应用程序222(包括增强的跨站攻击防护应用223、认证应用224、以及其它所需应用225)、和数据文件226的文件;以及计算机网络接口216,其通过计算机网络连接116提供到网络106的通信接口。组件设备与计算机CPU 200通过计算机总线227相互通信。
简单来讲,增强的跨站攻击防护应用223被有形地体现在盘220,一种机器可读存储介质中。增强的跨站攻击防护应用223包括指令,所述指令操作以使计算机将网页存储在网站102上,所述网页被组织成不接受输入的入口网页和不是入口网页的保护的网页,以从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据,并确定所请求的网页是入口网页还是保护的网页。增强的跨站攻击防护应用223还包括指令,所述指令操作以使计算机在所请求的网页在被确定为保护的网页的情况下,基于标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站102上,如果用户应用被确定为被授权并且引用网页被确定为存储在网站102上,则将所请求的网页传送到用户应用,而如果用户应用被确定为未被授权或者引用网页被确定没有存储在网站102上,则将该请求重新定向到入口网页之一。
RAM 210与计算机总线227接口连接,以便在诸如操作系统应用程序的软件程序以及设备驱动器的运行期间为计算机CPU 200提供快速的RAM存储。更具体地讲,计算机CPU 200将计算机可执行处理步骤从固定盘驱动111或其它存储介质装载到RAM 210的字段中,以便执行软件程序。数据被存储在RAM 210中,在那里数据在运行期间被计算机CPU 200访问。
如图2中所示,网关计算机101存储用于操作系统221的计算机可执行代码,以及应用程序222,诸如文字处理、电子表格、演示文稿、游戏、或其它应用。虽然,能够使用上述实施方式来提供增强的跨站攻击防护,但是也可以将根据本公开的功能实施为动态链接库(“DLL”)或者插入其它应用程序的插件程序,所述其它应用程序如因特网网络浏览器,例如
Figure S2008100923209D00081
网络浏览器。
计算机CPU 200是高性能计算机处理器之一,包括
Figure S2008100923209D00091
Figure S2008100923209D00092
处理器、
Figure S2008100923209D00093
处理器、
Figure S2008100923209D00094
简化指令集计算机(“RISC”)处理器、处理器、
Figure S2008100923209D00096
体系结构处理器、
Figure S2008100923209D00097
处理器或大型机的专用计算机处理器。在另外的配置中,计算机CPU 200为不止一个的处理单元,包括存在于高性能工作站和服务器中的多CPU配置,或者存在于大型机中的多可升级(scalable)处理单元。
操作系统221可以是
Figure S2008100923209D00099
Figure S2008100923209D000910
工作站;
Figure S2008100923209D000911
Figure S2008100923209D000912
服务器;多种
Figure S2008100923209D000913
风格的操作系统,包括用于
Figure S2008100923209D000914
工作站和服务器的
Figure S2008100923209D000915
、用于
Figure S2008100923209D000916
工作站和服务器的、基于
Figure S2008100923209D000918
的工作站和服务器的
Figure S2008100923209D000919
用于
Figure S2008100923209D000920
工作站和服务器的
Figure S2008100923209D000921
用于
Figure S2008100923209D000922
工作站和服务器的
Figure S2008100923209D000923
用于Digital Equipment Corporation的VAX/VMS、用于基于HP
Figure S2008100923209D000924
的计算机的
Figure S2008100923209D000925
用于基于
Figure S2008100923209D000926
的工作站和服务器的
Figure S2008100923209D000927
用于移动设备的
Figure S2008100923209D000928
Figure S2008100923209D000929
Figure S2008100923209D000930
Figure S2008100923209D000931
或者用于计算机或嵌入式系统的专用操作系统。用于操作系统221的应用开发平台或框架可以是:
Figure S2008100923209D000932
Figure S2008100923209D000933
Java Platform、Micro Edition(“Java ME”)或Java2 Platform、Micro Edition
Figure S2008100923209D000935
虽然为了简洁目的而省略了网站102、以及计算机104和105的内部体系结构的描述,但是只要说出下面的内容就足够了:那些计算机的体系结构基本上类似于网关计算机101的体系结构。在替代的实施方式中,网关计算机101和服务器106的功能被组合到单一或组合的硬件环境中,所述内部体系结构被组合或复制。
虽然图1和图2示出了执行被配置为实行增强的跨站攻击防护的程序代码、或程序或处理步骤的计算机系统的一个可能实施方式,但是其它类型的计算机也可以使用。
关于跨站攻击,开发者使用
Figure S2008100923209D000937
语言,通过将脚本嵌入由用户网络浏览器解释的HTML页,来合法地增强基于网络的用户应用。网页中脚本的执行被浏览器沙盒化(sandboxed),这样所有的访问和引用(reference)都受到监控。沙盒(sandbox)创建了一种环境,其中对小程序能够请求或访问的系统资源做出了严格的限制,当可执行代码来自未知或非可信来源时使用沙盒,减少了运行非可信代码的用户的风险。对于脚本运行,同源策略规定了只允许脚本访问沙盒中的对象,特别是来源于相同网站的对象。按照同源策略的上下文中的理解,网站引用域名系统(“DNS”)域(例如www.website.com),这样来自那个网站或域的全部对象被视为来源于相同的来源。
Figure S2008100923209D00101
语言对象模型中,示例对象包括网页或cookie。由于能够访问这些对象的脚本对它们具有有效的控制,因此例如,黑客能够重写网页或读取cookie并将其发送到不同的主机以便将汇款(money transfer)改写到黑客自己的账户上,或者将认证合法网络用户的cookie转发到黑客。对于同源策略,在用户和网站之间建立安全上下文,这样在特定安全上下文中运行的脚本能够从那个网站访问用户的网络浏览器中的对象。为了使脚本进入这个安全上下文,脚本被嵌入从网站请求的网页中。
如果黑客能够将脚本嵌入合法网络用户从网站请求的网页中,则黑客能够控制合法网络用户的安全上下文。这样的恶意嵌入脚本被称为跨站脚本攻击,因为脚本可能来自不同的网站。
为了安装跨站脚本攻击,黑客可以利用公共网络应用的弱点。例如,由于交互式网络应用接受用户输入以建立响应网页,所以黑客可以将脚本插入该输入中,该输入可能不会被特定网络应用详细地检查。在一个示例中,用户可以使用以下输入将请求提交到网页:
HTTP://WWW.WEBSITE.COM/INDEX.PHP?NAME=JIM
响应于该输入,网络应用可以用以下个性化网页来响应:
<HTML>
<BODY>
HELLO,JIM
但是,黑客能够使用以下输入请求相同网页:
HTTP://WWW.WEBSITE.COM/INDEX.PHP?NAME=JIM<SCRIPT>ALERT(″XSSSCRIPT″)</SCRIPT>
响应于这个输入,相同网络应用会生成以下内容:
<HTML>
<BODY>
HELLO,JIM
<SCRIPT>ALERT(″XSS SCRIPT″)</SCRIPT>
基于插入文本到URL的输入部分中,产生在合法网络用户的安全上下文中运行脚本(“XSS SCRIPT”)的响应。这样的脚本运行的结果可能是严重的,并且可能包括cookie和会话盗窃、浏览器劫持、用户监视和数据盗窃、请求伪造、以及假冒交易。因为该输入被用户浏览器反射,所以这样的攻击被称为反射的跨站脚本攻击。并不总是这样的情况:合法网络用户看到以他们名义发送的非法输入或与以他们名义发送的非法输入进行交互,因此合法网络用户可能没有机会在这个输入被发送到网站前检查该输入。
作为跨站脚本攻击的危险的进一步的加剧,引入脚本的复杂度不必受到输入长度的限制。具体来讲,黑客还能够将引用引入不同的URL或网页,在其中接纳恶意链接的网站与脚本代码的来源不需要一致。黑客不仅可以通过网页,而且还可以通过电子邮件消息或其它形式的电子通信将恶意链接提供给合法网络用户。例如,当接收垃圾电子邮件消息时,用户会不知不觉地选择链接,并使用以下输入从上述示范网站请求网页:
HTTP://WWW.WEBSITE.COM/INDEX.PHP?NAME=JIM<SCRIPT
SRC=″HTTP://HACKER.NET/XSS.JS″>
这样的输入会导致以下响应:
<HTML>
<BODY>
HELLO,JIM
<SCRIPT SRC=″HTTP://HACKER.NET/XSS.JS″>
类似的交互还可以用于跨站请求伪造攻击,虽然目的可能不同。在这样的攻击中,黑客利用会话的存在,其是合法网络用户执行一定动作的限时认证。当跨站脚本攻击试图将脚本引入合法网络用户的安全上下文中时,因为该请求可能启动伪造交易,所以请求本身足够用于请求伪造攻击。使用增强的跨站攻击防护方案,可以处理这两种攻击。由于到网络应用的输入来源于合法网络用户的网络浏览器,所以通过防止出现以该用户名义进行的非法输入而可能产生跨站攻击防护。
图3是示出用于实施增强的跨站攻击防护的处理的流程图。简单来讲,该处理包括:将网页存储在网站上,该网页被组织成不接受输入的入口网页和不是入口网页的保护的网页;从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据;并确定所请求的网页是入口网页还是保护的网页。所述处理还包括:如果所请求的网页被确定为保护的网页,则基于标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站上;以及如果用户应用被确定为被授权并且引用网页被确定为存储在网站上,则将所请求的网页传送到用户应用。而且,所述处理还包括:如果用户应用被确定为未被授权或者引用网页被确定没有存储在网站上,则将该请求重新定向到入口网页之一。
更具体地讲,处理300开始(S301),此时网页在网站被组织成入口网页和保护的网页(S302)并存储在网站上时(S304)。入口网页不接受输入,这样,到入口网页的输入或被网关过滤掉,或被丢弃,而保护的网页能够接受输入。对可能包括应用、小服务程序或脚本的保护的网页的访问经由通过入口网页的访问路径来提供。在图1的示范系统中,网页可以被组织和存储在网关计算机101和/或网站102上。
在前进到保护的网页之前,对网站的访问在入口网页发生(或进入)。以这种方式,到保护的网页的输入被强制从合法网络用户的浏览器的合法入口开始,因此试图通过恶意链接的进行的跨站攻击被防止。入口网页的通常的候选者是登录页、主页、或入口扉页(entry front),以及典型地设定了书签的其它网页。
保护的(或“普通的(regular)”)网页是那些不是入口网页的网页。保护的网页能够但不必接受输入,并可以是不接受输入的网页。示例的保护的网页可以是在线银行交易页、在线银行菜单页、在线银行认证页、在线拍卖搜索结果页、在线拍卖登录页、在线拍卖认证页、在线拍卖投标入口页、在线拍卖投标验证页、在线零售商搜索结果页、在线零售商购物推车页、在线零售商登录页、在线零售商信用卡地址验证页、在线零售商确认页、网络邮件认证页、网络菜单页、网络邮件发送页、网络邮件搜索页、网络邮件读取页、搜索引擎搜索结果页、入口认证页、或
Figure S2008100923209D00132
入口菜单页、或其它网页。
在网站上将网页组织成入口网页或保护的网页可以手动进行,比如通过程序员和管理员,或者自动进行。例如,不接受输入的网页可以被自动分类作为入口网页,而所有其它网页或接受输入的网页被自动分类作为保护的网页。在一个具体示例中,存储在网站102上的网页通过存储在网关计算机101上的分类应用被自动组织成入口网页和保护的网页。
首先简单涉及,图4示出了示范系统400,包括目标网站401、合法网络用户使用的计算机402、以及黑客使用计算机404。目标网站401存储网页405,所述网页405被组织成不接受输入的入口网页406a到406c、以及保护的网页407a到407g。合法网络用户使用的计算机402将书签链接409存储到入口网页406b。虽然存储在计算机402上的书签链接410表面上链接到保护的网页,但是该链接被重新定向到入口网页406b或406c,这是因为直接进入(direct entry)或书签进入(bookmarking)保护的网页是不允许的。黑客使用的计算机404通过恶意跨站脚本输入将链接411存储到保护的网页407b。
返回图3,用户应用可以在网站被授权(S305)。授权可以通过唯一地标识用户应用,比如通过用户应用的唯一名称或地址,以及辨认或准许匹配该唯一标识符的请求来进行。授权还包括基于唯一标识符进行认证以建立用户应用的作者或来源,这可以通过基于具有用户名和网站所知的秘密密钥的消息授权代码来构建标识cookie来进行。或者,认证可以使用秘密密钥、使用会话URL、使用HTTP认证、或用户应用端安全套接字层(“SSL”)来进行。
HTTP认证允许网络浏览器或其它用户应用在进行请求时以用户标识符和口令的形式提供凭证(credential)。这些凭证可以作为明文传递,或者它们可以被加密。用户应用可以是,例如,在用户设备上运行的浏览器应用。使用HTTP认证,用户应用请求需要认证的网页,但是并不提供用户名和口令,比如通过输入地址或跟上到网页的链接。服务器以“401”响应代码作出响应以提供认证域(realm),并且客户端将该认证域展示给用户并针对用户名和口令进行提示,此时用户可以决定放弃进行认证。当用户名和口令被提供后,客户端重新发送相同的请求,但是包括了认证首标,而服务器接受该认证并将网页返回。如果用户名无效或口令不正确,则服务器将“401”响应代码返回,而用户应用再次提示用户。
或者,SSL是为用户应用提供安全访问以便在网络上进行通信的加密协议。SSL通过以下方式工作:首先协商用户应用支持的算法,交换基于公共密钥加密的密钥和基于证书的认证,并执行基于对称密码的业务(traffic)加密。
虽然这些以及其它的方案都可用,但是由于cookie在许多真实世界应用和入口中常用,所以在这里使用cookie描述认证。在一个示例实施方式中,当用户输入用户名和口令时cookie被生成,因此cookie与用户的身份电子地相关联。在用户完成认证协议之后,比如口令检查,网站可以发出cookie。
或者,在没有全面认证用户应用的情况下,“未认证的”cookie可以产生并传送到用户应用,表示用户应用被授权遍历(traverse)保护的网页,但是未经认证。在这点上,网站可以被组织来在入口网页产生未认证的cookie,以允许对一定保护的网页的访问,并跟踪用户经过一定保护的网页,随后在其它保护的网页被观看之后提供授权页,来执行用户应用的全面认证。
基于授权用户应用,诸如cookie或口令的数据可以从网站传送到用户应用(S306)。这个数据可以是标识数据,标识数据是被期望利用网站请求从用户应用传送回到网关的数据,或者该数据可以是授权数据,授权数据是由用户应用处理以产生标识数据的数据。在另一个示例实施方式中,没有数据从网站传送到用户应用。在图1的示范系统中,标识或授权数据被从网关计算机101传送到合法网络用户使用的计算机104。
标识数据可以是cookie,cookie是网络浏览器利用对网页的请求传送回到网站的一小段用来认证操作用户应用的用户的数据,其中cookie可以被网站修改。或者,授权数据可以是允许用户应用在客户端设备产生cookie的数据,其中产生的cookie作为标识数据被传送回到网站。cookie被存储在用户的计算机上,并且如同源策略所规定的,与网站相关联,这样网站从用户接收其相关联的cookie。网站可以与不止一个cookie相关联。
从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据(S307)。该请求可以在网关接收,比如网关计算机101,或者在网站接收,比如网站102。
引用字符串可以是HTTP引用字符串,并且可以存储引用网页的URL。HTTP引用字符串是请求中的HTTP首标字段,含有引用所请求的网页的网页的URL。网站开发者能够请求用户使能(enable)用户应用中的引用字符串,因为缺少引用字符串可以被检测到并用于将用户应用重新定向到通知用户使能引用字符串的网页。
确定所请求的网页是入口网页还是保护的网页(S309)。这样的确定可以通过参考存储在网关计算机101或网站102上的表格来进行,该表格将网页分类为入口网页或保护的网页。或者,可以检查所请求的网页本身中的元数据来确定该网页被标识为入口网页还是保护的网页。如果将网页组织成入口网页和保护的网页是自动执行的,类似的确定还可以基于相同的分类标准来自动进行。例如,如果网页接受输入,它们被自动分类为保护的网页,网关计算机101可以通过确定所请求的网页是否接受输入来确定所请求的网页是否是保护的网页。
如果确定所请求的网页不是保护的网页(S310),可以从请求中去除输入数据以产生剥离的请求(S311)。对于入口网页的每个访问,采用查询URL或POST请求数据形式的输入被剥离,其中基于剥离的请求将入口网页传送到用户应用(S312),由此结束处理300。
其它输入数据,比如HEAD、GET、PUT、DELETE、TRACE、OPTIONS、CONNECT或其它请求数据也可以被剥离。在图4示例中,假设计算机402被授权,如果在合法网络用户使用的计算机402上选择到入口网页406b的链接409,从该链接剥离所有输入,并且入口网页406b被传送到相关联的用户应用。在替代的实施方式中,不从请求中去除输入数据。
如果确定所请求的网页是保护的网页(S310),则进一步基于标识数据确定用户应用是否被授权,以及基于引用字符串确定引用网页是否存储在网站上(S315)。在这点上,对于保护的网页的每个访问,网关验证已经设定认证用户的cookie以及请求的引用字符串来源于网站。cookie可以是“未认证的”cookie。
一组示例的用于反射的跨站脚本攻击的HTTP首标和增强的响应被示出如下:
GET/PROTECTED_PAGE.PHP?NAME=<SCRIPT>ALERT(%22XSS%22)
<%2FSCRIPT>HTTP/1.1
HOST:WWW.WEBSITE.COM
REFERER:HTTP://WWW.HACKER.NET/
MALICOUS_LINK.HTML
COOKIE:AUTH=USERNAME:9100ADA74E758C76D0CCB2595747C910
HTTP/1.1302FOUND
LOCATION:HTTP://WWW.WEBSITE.COM/
DEFAULT_ENTRY.HTML
在这个示例中,通过黑客提供的输入,用户可能不注意地选择了请求网站上的敏感的保护的网页的恶意链接。网关计算机101或网站102检测引用字符串不是源自网站,并且将请求重新定向到默认的入口网页。即使已经由网络浏览器自动发送的cookie正确地认证了用户也进行重新定向。但是,如果请求具有标识cookie并含有适当的引用字符串,该请求不是跨站攻击,因此允许到保护的网页的访问。
如果用户被确定为未被授权和/或引用网页被确定没有存储在网站上(S316),该请求被重新定向到入口网页之一(S317)。在其它示例实施方式中,请求被重新定向到默认入口网页,或者不被重新定向。
在图4的示范系统400中,虽然计算机402被假定为被授权,如果到保护的网页的链接410在合法网络用户使用的计算机402上被选择,则该请求被重新定向到入口网页406b或406c之一。而且,由于黑客使用的计算机404未被授权,所以,如果到保护的网页407b的链接410被合法网络用户不注意地选择,则该请求被重新定向到入口网页。
回到图3,如果用户被确定为被授权并且引用网页被确定存储在网站上(S316),该请求网页被传送到用户应用(S319)。通过确定用户被授权以及引用网页存储在网站上,减小了发生跨站攻击的危险。使用用户应用反向导航控制在保护的网页之间进行导航(S320),并且处理300结束(S314)。在替换的实施方式中,在保护的网页之间进行导航而不使用用户应用导航控制,或者禁止(disable)使用用户应用导航控制的导航。
通过处理300描述的增强的跨站攻击防护方案可以作为总体软件战略的一部分用来增加输入过滤,例如不允许在输入过滤算法中的缺陷(flaw)导致的不适当的输入。这种方案的使用支持了由过滤算法提供的保护,因为过滤算法开发使用蠕虫非常快速的扩展,并且过滤算法通常经由库共享。底层的库所导致的弱点的发现同时暴露多个网站,并且不能完全修复,直到所有网站都分别更新它们的代码为止。
特别地,增强的跨站攻击防护方案不仅仅不允许存在于网站上的脚本,还禁止被检测为包括恶意特性的脚本,防止脚本将数据泄漏给黑客,通过将令牌(token)添加到URL来重写请求或响应,或者防止成功的脚本攻击偷取会话。如此,增强的跨站攻击防护方案减小了与设定系统和针对(addressing)每个请求相关联的成本,这是因为不需要超文本预处理器(“PHP”)包装和代理服务器,并且不需要将请求映射到DNS入口。这样做时,减轻了复制和负载平衡问题。
诸如网关计算机101的网关可以在以任意语言编写的用户应用包括负载平衡应用之前进行部署。在网关对cookie进行的验证可以通过对cookie编排格式来实行,如下所示:
USERNAME|MAC(USERNAME,KEY)
当以这种方式或类似的方式编排格式时,网关能够使用密钥、通过一种消息认证代码计算来验证cookie和用户的身份,而不重写该输出,这是因为网络应用的这个输出不仅仅是转发的。因此,对于每个请求,能够避免重写以及相应的延迟。
图5示出了对示范在线银行应用500的入口网页和保护的网页的组织。简单来讲,在线银行应用500包括单个入口网页和通过该入口网页访问的多个保护的网页。
更具体地讲,主页入口网页501提供用于登录到在线银行应用500的方式(form)。用户应用不需要展示cookie或提供任何其它授权或标识数据来访问主页入口网页501。在遍历主页入口网页之后,在线银行应用500通过输入接收认证保护的网页(input-accepting authentication protected page)502来认证用户应用。例如,输入接收认证保护的网页502可以验证提供的用户名和口令。
当进行认证时,用户应用被重新定向到主菜单保护的网页504,其提供由用户选择选项。主菜单保护的网页504提供的选项将用户应用链接到交易保护的网页505a到505d,其可以接受输入。例如,这些交易可以包括汇款或股市定单。以及确认页。虽然单一交易可以包括不止一个步骤或网页,这些各个网页的保护的性质持续。选项还可以将用户应用链接到菜单保护的网页506a和506b,其还可以接受输入。通过手动选择或自动重新定向,用户应用可以从任何保护的网页被重新定向到主页入口网页501。
图6示出了对示范在线拍卖应用600的入口网页和保护的网页的组织。简单来讲,在线拍卖应用600包括多个入口网页和用于实行浏览、搜索和投标的保护的网页。与在线银行应用500相似,主页入口网页601提供用于登陆到在线拍卖应用600的方式。由于主页入口网页601是入口网页,所以用户不需要展示cookie或提供任何其它认证或标识数据来访问这个网页。
在成功地识别用户并在主页入口网页601输入搜索项(search term)之后,输入接受搜索结果保护的网页602被观看以显示搜索结果概要。由于搜索结果保护的网页602是保护的网页,所以不能在不访问入口网页比如主页入口网页601的情况下直接访问搜索结果保护的网页602。还可以使用由入口网页提供的“未被认证的cookie”来标识未被认证的用户,在不首先进行认证的情况下,访问搜索结果保护的网页602。
通过类别浏览入口网页604a到604c,各种类别的项目可以被浏览而不需认证用户。类似其它入口网页,主页入口网页601和类别浏览入口网页604a到604c可以被书签标记(bookmarked)。从输入接收搜索结果保护的网页602或类别浏览入口网页604a到604c,在项目入口网页605a到605e上观看拍卖项目。由于项目入口网页605a到605e被组织成入口网页,所以它们能够被书签标记,被搜索引擎搜索,被转发给其他人,并直接被访问而不需要首先访问存储在网站上的另一个网页。而且,项目入口网页605a到605e不需要是静态的,并且能够包括变量部分来显示最高投标量或剩余拍卖时间。
当通过项目入口网页605选择项目时,如果用户还没有被认证,则提供登录保护的网路606和输入接受认证保护的网页607。一旦被认证,输入接受投标入口保护的网页609和输入接受投标验证保护的网页610被提供来接收投标。在没有首先访问入口网页的情况下,不允许对登录保护的网页606、认证保护的网页607、投标入口保护的网页609和投标验证保护的网页610的直接访问。
在投标验证之后,用户应用被重新定向到项目入口网页605。为了识别考虑中的项目,投标过程中涉及的各个网页接收项目标识符作为输入。如果保护的网页被配置来使用非标识的(non-identification)cookie,则对不同网页的认证可以通过网关来实行。
图7示出了对示范在线零售应用700的入口网页和保护的网页的组织。类似于在线拍卖应用600,在线零售应用700还包括主页入口网页701、输入接受搜索结果保护的网页702、类别浏览入口网页704a到704c、以及项目入口网页705a到705e。通过使用未被认证的cookie,用户可以被标识和授权来观看搜索结果保护的网页702和购物推车保护的网页706,而不进行全面认证。当前进到结算(check-out)程序时,购物推车保护的网页706和输入接受登录保护的网页707强制对用户的认证。支付保护的网页709和确认保护的网页710类似于投标保护的网页,虽然在线零售上下文中可以涉及其它步骤。
图8示出了对示范网络邮件应用800的入口网页和保护的网页的组织。网络邮件应用800提供电子邮件消息,包括具有可以包括恶意脚本的HTML内容的消息,的发送、读取、和搜索。简单来讲,类似于在线银行应用500,网络邮件应用800包括单一入口网页和通过入口网页访问的多个保护的网页。
更具体地讲,主页入口网页801提供登陆到网络邮件应用800的方式。用户应用不需要展示cookie或提供任何其它认证或标识数据来访问主页入口网页801。在通过输入接受认证网页802成功地认证用户之后,网络邮件应用800将用户应用重新定向到主菜单保护的网页804,其提供由用户选择选项。基于所选择的选项,用户应用可以进一步被定向到可以接受输入的邮件发送保护的网页805a和805b、输入接受邮件搜索保护的网页806、输入接受邮件读取保护的网页807、或其它网页。
图9示出了对示范搜索引擎应用900的入口网页和保护的网页的组织。简单来讲,搜索引擎应用900包括具有输入方式的输入接受主页入口网页901和输入接受搜索结果保护的网页902。虽然搜索引擎应用900自己可能不存在威胁,然而它对黑客来说是很重要的目标,这是因为用户通常在这样的网页开始他们的因特网浏览会话。在这点上,搜索引擎应用900可以是黑客用来放置恶意脚本的具有诱惑力的目标。
因为搜索结果保护的网页902受到保护,所以搜索引擎应用900不允许书签搜索,或直接链接查询。在一个实施方式中,搜索引擎应用900唯一地进行识别和授权,但是不认证用户,由此通过使用未被认证的cookie来禁止对搜索结果保护的网页902的访问。
图10示出了对示范
Figure S2008100923209D00201
入口应用1000的入口网页和保护的网页的组织。简单来讲,
Figure S2008100923209D00202
入口应用1000包括入口扉页(portal front entry page)1001和保护的网页。通过输入接受认证保护的网页1002实行对保护的网页的访问,输入接受认证保护的网页1002本身通过入口扉页1001来访问。在一个示例实施方式中,使用客户端SSL证书来执行认证。当进行认证时,其它输入接受和非输入接受保护的网页1004a到1004e通过保护的主菜单网页1003来访问。特别地,用户应用在保护的网页之间进行导航期间保持被认证状态。
图11是示出使用图3中绘出的示范处理的跨站脚本攻击的防护的浮动图。属于黑客的计算机1101将电子消息1102发送到合法网络用户使用的计算机1104,电子消息1102包含了具有跨站脚本输入的恶意链接1105。没不知道恶意链接1105的情况下,合法用户可以选择该链接1105,其将请求1106发送到目标网站1107。
虽然合法用户可以被目标网站1107授权和认证,但是由于请求1106的引用网页的引用字符串被存储在属于黑客的计算机1101上,而没有存储在目标网站1107上,所以响应1109被产生,其将合法用户重新定向到入口网页,预先占据跨站脚本内容的反射。因此,增强的跨站攻击防护方案能够用来阻止跨站脚本和跨站请求伪造攻击。
增强的跨站攻击防护方案可以部署在网络应用前,以处理请求,从而全面地保护网站免于遭受跨站攻击。由于没有执行响应重写,这个可升级的方案提供有效解决方案来防止跨站攻击,同时提供便利的部署。
已经描述了许多实施方式。然而,应当理解在不脱离公开内容的精神和范围的情况下可以进行各种修改。因此,其它实施方式在后面权利要求书的范围之内。

Claims (20)

1.一种用于防止跨站攻击的方法,包括:
将网页存储在网站上,该网页被组织成不接受输入的入口网页和不是入口网页的保护的网页;
从用户应用接收请求以接收所请求的网页,该请求包括指示引用网页的引用字符串以及标识数据;
确定所请求的网页是入口网页还是保护的网页;
如果所请求的网页被确定为保护的网页,则基于所述标识数据确定所述用户应用是否被授权,以及基于所述引用字符串确定所述引用网页是否存储在网站上;
如果所述用户应用被确定为被授权并且如果所述引用网页被确定存储在网站上,则将所请求的网页传送到所述用户应用;以及
如果所述用户应用被确定为未被授权或者如果所述引用网页被确定没有存储在网站上,则将该请求重新定向到所述入口网页之一。
2.如权利要求1所述的方法,还包括:
如果所请求的网页被确定为入口网页或者该请求被重新定向到入口网页,则从请求中去除输入数据,由此产生剥离的请求;以及
基于所述剥离的请求将所述入口网页之一传送到所述用户应用。
3.如权利要求1所述的方法,还包括:
在网站授权所述用户应用。
4.如权利要求3所述的方法,其中,所述授权所述用户应用还包括认证所述用户应用。
5.如权利要求4所述的方法,其中,使用秘密密钥、使用会话统一资源定位符(″URL″)、使用超文本传输协议(″HTTP″)认证、或用户应用端的安全套接字协议层(″SSL″)授权所述用户应用。
6.如权利要求3所述的方法,还包括:
基于授权所述用户应用,将所述标识数据从网站传送到所述用户应用。
7.如权利要求1所述的方法,其中,所述标识数据是cookie。
8.如权利要求1所述的方法,还包括在所述网站将所述网页组织成入口网页和保护的网页。
9.如权利要求1所述的方法,其中,所述请求在网关被接收。
10.如权利要求1所述的方法,其中,所述保护的网页还包括应用、小服务程序或脚本。
11.如权利要求1所述的方法,还包括使用用户应用反向导航控制在保护的网页之间进行导航。
12.如权利要求1所述的方法,其中,所述用户应用是网络浏览器应用。
13.如权利要求1所述的方法,其中,所述用户应用在用户设备上执行。
14.如权利要求1所述的方法,其中,所述引用字符串是超文本传输协议(″HTTP″)引用字符串。
15.如权利要求1所述的方法,其中,所述引用字符串存储引用网页的统一资源定位符(″URL″)。
16.如权利要求1所述的方法,其中,至少一个入口网页是登录页、主页或入口扉页。
17.如权利要求1所述的方法,其中,所述保护的网页是在线银行交易页、在线银行菜单页、在线银行认证页、在线拍卖搜索结果页、在线拍卖登录页、在线拍卖认证页、在线拍卖投标入口页、在线拍卖投标验证页、在线零售商搜索结果页、在线零售商购物推车页、在线零售商登录页、在线零售商信用卡地址验证页、在线零售商确认页、网络邮件认证页、网络菜单页、网络邮件发送页、网络邮件搜索页、网络邮件读取页、搜索引擎搜索结果页、
Figure FSB00000530146600021
入口认证页或
Figure FSB00000530146600022
入口菜单页。
18.如权利要求1所述的方法,其中,所述标识数据指示用户被授权但是未被认证。
19.一种用于防止跨站攻击的系统,包括:
服务器,包括:
用于存储网页的装置,该网页被组织成不接受输入的入口网页和不是入口网页的保护的网页;和
网关,包括:
用于从用户应用接收请求以接收所请求的网页的装置,该请求包括指示引用网页的引用字符串以及标识数据;
用于确定所请求的网页是入口网页还是保护的网页的装置;
用于如果所请求的网页被确定为保护的网页,则基于所述标识数据确定所述用户应用是否被授权,以及基于所述引用字符串确定所述引用网页是否存储在网站上的装置;
用于如果所述用户应用被确定为被授权并且如果所述引用网页被确定存储在网站上,则将所请求的网页传送到所述用户应用的装置;以及
用于如果所述用户应用被确定为未被授权或者如果所述引用网页被确定没有存储在网站上,则将该请求重新定向到所述入口网页之一的装置。
20.一种用于防止跨站攻击的装置,包括:
用于将网页存储在网站上的装置,该网页被组织成不接受输入的入口网页和不是入口网页的保护的网页;
用于从用户应用接收请求以接收所请求的网页的装置,该请求包括指示引用网页的引用字符串以及标识数据;
用于确定所请求的网页是入口网页还是保护的网页的装置;
用于如果所请求的网页被确定为保护的网页、则基于所述标识数据确定所述用户应用是否被授权、以及基于所述引用字符串确定所述引用网页是否存储在网站上的装置;
用于如果所述用户应用被确定为被授权并且所述引用网页被确定存储在网站上、则将所请求的网页传送到所述用户应用的装置;以及
用于如果所述用户应用被确定为未被授权或者如果所述引用网页被确定没有存储在网站上、则将该请求重新定向到所述入口网页之一的装置。
CN2008100923209A 2007-04-23 2008-04-22 用于防止跨站攻击的方法和系统 Active CN101296087B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/738,912 US8584232B2 (en) 2007-04-23 2007-04-23 Enhanced cross-site attack prevention
US11/738,912 2007-04-23

Publications (2)

Publication Number Publication Date
CN101296087A CN101296087A (zh) 2008-10-29
CN101296087B true CN101296087B (zh) 2011-09-21

Family

ID=39673148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100923209A Active CN101296087B (zh) 2007-04-23 2008-04-22 用于防止跨站攻击的方法和系统

Country Status (5)

Country Link
US (1) US8584232B2 (zh)
EP (1) EP1986395B1 (zh)
CN (1) CN101296087B (zh)
AT (1) ATE434332T1 (zh)
DE (1) DE602008000026D1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603572A (zh) * 2017-01-16 2017-04-26 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112799B1 (en) * 2005-08-24 2012-02-07 Symantec Corporation Method, system, and computer program product for avoiding cross-site scripting attacks
US7673135B2 (en) 2005-12-08 2010-03-02 Microsoft Corporation Request authentication token
US8495708B2 (en) * 2007-03-22 2013-07-23 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US9378108B2 (en) * 2007-03-22 2016-06-28 Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US8438609B2 (en) * 2007-03-22 2013-05-07 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US20080235001A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing emulation decisions in response to software evaluations or the like
US9558019B2 (en) * 2007-03-22 2017-01-31 Invention Science Fund I, Llc Coordinating instances of a thread or other service in emulation
US20080234998A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Coordinating instances of a thread or other service in emulation
US20080235000A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing security control practice omission decisions from service emulation indications
US8874425B2 (en) * 2007-03-22 2014-10-28 The Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US8181246B2 (en) * 2007-06-20 2012-05-15 Imperva, Inc. System and method for preventing web frauds committed using client-scripting attacks
US20090292983A1 (en) * 2007-11-30 2009-11-26 Kunal Anand 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
US8850567B1 (en) * 2008-02-04 2014-09-30 Trend Micro, Inc. Unauthorized URL requests detection
US8078693B2 (en) * 2008-04-14 2011-12-13 Microsoft Corporation Inserting a multimedia file through a web-based desktop productivity application
CN101594343B (zh) * 2008-05-29 2013-01-23 国际商业机器公司 安全提交请求的装置和方法、安全处理请求的装置和方法
US8341200B2 (en) * 2008-06-12 2012-12-25 Pomian & Corella, Llc Protecting a web application against attacks through shared files
US8640244B2 (en) * 2008-06-27 2014-01-28 Microsoft Corporation Declared origin policy
US8763120B1 (en) * 2008-07-15 2014-06-24 Zscaler, Inc. Exploitation detection
US8782797B2 (en) * 2008-07-17 2014-07-15 Microsoft Corporation Lockbox for mitigating same origin policy failures
US8020193B2 (en) * 2008-10-20 2011-09-13 International Business Machines Corporation Systems and methods for protecting web based applications from cross site request forgery attacks
US8180891B1 (en) * 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US20100192224A1 (en) * 2009-01-26 2010-07-29 International Business Machines Corporation Sandbox web navigation
WO2010086625A1 (en) * 2009-01-30 2010-08-05 British Telecommunications Public Limited Company Secure web-based service provision
EP2214373A1 (en) * 2009-01-30 2010-08-04 BRITISH TELECOMMUNICATIONS public limited company Secure web-based service provision
CN101877696B (zh) * 2009-04-30 2014-01-08 国际商业机器公司 在网络应用环境下重构错误响应信息的设备和方法
CN101895516B (zh) * 2009-05-19 2014-08-06 北京启明星辰信息技术股份有限公司 一种跨站脚本攻击源的定位方法及装置
US8332952B2 (en) * 2009-05-22 2012-12-11 Microsoft Corporation Time window based canary solutions for browser security
US8924553B2 (en) * 2009-08-31 2014-12-30 Red Hat, Inc. Multifactor validation of requests to thwart cross-site attacks
US8904521B2 (en) * 2009-11-30 2014-12-02 Red Hat, Inc. Client-side prevention of cross-site request forgeries
US8775818B2 (en) * 2009-11-30 2014-07-08 Red Hat, Inc. Multifactor validation of requests to thwart dynamic cross-site attacks
US8875285B2 (en) * 2010-03-24 2014-10-28 Microsoft Corporation Executable code validation in a web browser
US9160756B2 (en) 2010-05-19 2015-10-13 International Business Machines Corporation Method and apparatus for protecting markup language document against cross-site scripting attack
US8856874B2 (en) 2010-05-19 2014-10-07 International Business Machines Corporation Method and apparatus for serving content elements of a markup language document protected against cross-site scripting attack
CA2704863A1 (en) 2010-06-10 2010-08-16 Ibm Canada Limited - Ibm Canada Limitee Injection attack mitigation using context sensitive encoding of injected input
US9021586B2 (en) * 2010-07-20 2015-04-28 At&T Intellectual Property I, L.P. Apparatus and methods for preventing cross-site request forgery
US8068011B1 (en) 2010-08-27 2011-11-29 Q Street, LLC System and method for interactive user-directed interfacing between handheld devices and RFID media
US8578461B2 (en) 2010-09-27 2013-11-05 Blackberry Limited Authenticating an auxiliary device from a portable electronic device
US8910247B2 (en) 2010-10-06 2014-12-09 Microsoft Corporation Cross-site scripting prevention in dynamic content
CN102571846B (zh) * 2010-12-23 2014-11-19 北京启明星辰信息技术股份有限公司 一种转发http请求的方法及装置
CN102073559A (zh) * 2011-01-12 2011-05-25 北京搜狗科技发展有限公司 一种网页输入数据保护方法及系统
US8949992B2 (en) * 2011-05-31 2015-02-03 International Business Machines Corporation Detecting persistent vulnerabilities in web applications
US10445528B2 (en) * 2011-09-07 2019-10-15 Microsoft Technology Licensing, Llc Content handling for applications
CN102984117B (zh) * 2011-09-07 2016-06-22 中国移动通信集团公司 一种网页组件的鉴权方法、鉴权服务器及鉴权系统
US9223976B2 (en) 2011-09-08 2015-12-29 Microsoft Technology Licensing, Llc Content inspection
CN103001817B (zh) * 2011-09-16 2016-08-10 厦门市美亚柏科信息股份有限公司 一种实时检测网页跨域请求的方法和装置
GB2496107C (en) * 2011-10-26 2022-07-27 Cliquecloud Ltd A method and apparatus for preventing unwanted code execution
US9813429B2 (en) * 2012-01-03 2017-11-07 International Business Machines Corporation Method for secure web browsing
US9191405B2 (en) * 2012-01-30 2015-11-17 Microsoft Technology Licensing, Llc Dynamic cross-site request forgery protection in a web-based client application
CN103312666B (zh) * 2012-03-09 2016-03-16 腾讯科技(深圳)有限公司 一种防御跨站请求伪造csrf攻击的方法、系统和装置
CN102664913B (zh) * 2012-03-21 2015-04-15 北京奇虎科技有限公司 网页访问控制方法和装置
US8898766B2 (en) * 2012-04-10 2014-11-25 Spotify Ab Systems and methods for controlling a local application through a web page
US10171483B1 (en) 2013-08-23 2019-01-01 Symantec Corporation Utilizing endpoint asset awareness for network intrusion detection
US11057395B2 (en) 2014-03-24 2021-07-06 Micro Focus Llc Monitoring for authentication information
CN104036193B (zh) * 2014-05-16 2017-02-01 北京金山安全软件有限公司 一种应用程序的本地跨域漏洞检测方法及装置
US10057217B2 (en) 2014-07-15 2018-08-21 Sap Se System and method to secure sensitive content in a URI
CN105512559B (zh) * 2014-10-17 2019-09-17 阿里巴巴集团控股有限公司 一种用于提供访问页面的方法与设备
US9740879B2 (en) 2014-10-29 2017-08-22 Sap Se Searchable encryption with secure and efficient updates
US9342707B1 (en) * 2014-11-06 2016-05-17 Sap Se Searchable encryption for infrequent queries in adjustable encrypted databases
US9608809B1 (en) 2015-02-05 2017-03-28 Ionic Security Inc. Systems and methods for encryption and provision of information security using platform services
CN105991615B (zh) * 2015-03-04 2019-06-07 杭州迪普科技股份有限公司 基于csrf攻击的防护方法及装置
CN106339309B (zh) * 2015-07-14 2020-01-31 腾讯科技(深圳)有限公司 应用程序的测试方法、客户端及系统
CN106549925A (zh) * 2015-09-23 2017-03-29 阿里巴巴集团控股有限公司 防止跨站点请求伪造的方法、装置及系统
US9830470B2 (en) 2015-10-09 2017-11-28 Sap Se Encrypting data for analytical web applications
US10740474B1 (en) 2015-12-28 2020-08-11 Ionic Security Inc. Systems and methods for generation of secure indexes for cryptographically-secure queries
US10503730B1 (en) 2015-12-28 2019-12-10 Ionic Security Inc. Systems and methods for cryptographically-secure queries using filters generated by multiple parties
CN107436873B (zh) * 2016-05-25 2021-05-07 北京奇虎科技有限公司 一种网址跳转方法、装置及中转装置
US11108762B2 (en) 2018-06-05 2021-08-31 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
US10992759B2 (en) 2018-06-07 2021-04-27 Sap Se Web application session security with protected session identifiers
US10972481B2 (en) * 2018-06-07 2021-04-06 Sap Se Web application session security
EP3588347B1 (en) * 2018-06-29 2021-01-13 AO Kaspersky Lab Systems and methods for identifying unknown attributes of web data fragments when launching a web page in a browser
CN109040073B (zh) * 2018-08-07 2021-04-16 北京神州绿盟信息安全科技股份有限公司 一种万维网异常行为访问的检测方法、装置、介质和设备
CN109948025B (zh) * 2019-03-20 2023-10-20 上海古鳌电子科技股份有限公司 一种数据引用记录方法
US10746567B1 (en) 2019-03-22 2020-08-18 Sap Se Privacy preserving smart metering
US11275840B2 (en) 2019-07-29 2022-03-15 Sap Se Management of taint information attached to strings
CN112115400A (zh) * 2020-02-02 2020-12-22 郭春燕 网页数据处理方法、装置及网页云平台
CN113783824B (zh) * 2020-06-10 2022-08-30 中国电信股份有限公司 防止跨站请求伪造的方法、装置、客户端、系统及介质
US11720988B1 (en) * 2020-06-12 2023-08-08 Wells Fargo Bank, N.A. Automated data agent monitoring bot
KR102413355B1 (ko) * 2021-03-25 2022-06-27 주식회사 이알마인드 디바이스로의 보안 서비스 제공 방법 및 이를 수행하는 서버

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003293A1 (en) * 1998-02-17 2004-01-01 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
US20040168083A1 (en) * 2002-05-10 2004-08-26 Louis Gasparini Method and apparatus for authentication of users and web sites
CN1870493A (zh) * 2006-06-15 2006-11-29 北京华景中天信息技术有限公司 网站安全漏洞扫描方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658400B2 (en) * 1999-12-04 2003-12-02 William S. Perell Data certification and verification system having a multiple-user-controlled data interface
US7424445B1 (en) * 2000-04-06 2008-09-09 Apple Inc. Virtual bundles
US7370011B2 (en) * 2000-06-28 2008-05-06 Yahoo! Inc. Financial information portal
US8272032B2 (en) * 2004-11-10 2012-09-18 Mlb Advanced Media, L.P. Multiple user login detection and response system
US20070136809A1 (en) * 2005-12-08 2007-06-14 Kim Hwan K Apparatus and method for blocking attack against Web application
US8079076B2 (en) * 2006-11-02 2011-12-13 Cisco Technology, Inc. Detecting stolen authentication cookie attacks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003293A1 (en) * 1998-02-17 2004-01-01 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
US20040168083A1 (en) * 2002-05-10 2004-08-26 Louis Gasparini Method and apparatus for authentication of users and web sites
CN1870493A (zh) * 2006-06-15 2006-11-29 北京华景中天信息技术有限公司 网站安全漏洞扫描方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603572A (zh) * 2017-01-16 2017-04-26 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置
CN106603572B (zh) * 2017-01-16 2020-07-14 深圳市九州安域科技有限公司 一种基于探针的漏洞检测方法及其装置

Also Published As

Publication number Publication date
EP1986395A1 (en) 2008-10-29
EP1986395B1 (en) 2009-06-17
CN101296087A (zh) 2008-10-29
ATE434332T1 (de) 2009-07-15
US20080263650A1 (en) 2008-10-23
US8584232B2 (en) 2013-11-12
DE602008000026D1 (de) 2009-07-30

Similar Documents

Publication Publication Date Title
CN101296087B (zh) 用于防止跨站攻击的方法和系统
US8225401B2 (en) Methods and systems for detecting man-in-the-browser attacks
US8856937B1 (en) Methods and systems for identifying fraudulent websites
JP5329859B2 (ja) ファーミング・フィッシング攻撃で用いられる不正なssl証明書・dnsリダイレクトの検出方法
JP4625246B2 (ja) クロスサイトスクリプティング脆弱性の自動検出
US8910292B1 (en) Method and system for detection of remote file inclusion vulnerabilities
US10721271B2 (en) System and method for detecting phishing web pages
US9363256B2 (en) User authentication in separate authentication channels
CN101478530B (zh) 提供对不安全网络的安全访问的方法和系统
US20190180008A1 (en) Increased security using dynamic watermarking
US20090006232A1 (en) Secure computer and internet transaction software and hardware and uses thereof
CN102984121A (zh) 访问监视方法和信息处理装置
US11055425B2 (en) Service defense techniques
WO2014117687A1 (zh) 显示网址安全鉴定信息的方法及装置
CN107016074A (zh) 一种网页加载方法及装置
Kumar et al. Proposed method for SQL injection detection and its prevention
CN107294920A (zh) 一种反向信任登录方法和装置
US11392692B2 (en) Authentication device
Algwil Click-based Captcha paradigm as a web service
CN110321702A (zh) 检测网络资源的修改的系统和方法
Jones Examining the forensic artifacts produced by use of bitcoin currency
US20240012885A1 (en) Validation of a network operation related to use of a token via token-request-triggered storage of snapshot url data
Yin et al. Scanner++: Enhanced Vulnerability Detection of Web Applications with Attack Intent Synchronization
US20230065787A1 (en) Detection of phishing websites using machine learning
US20230129631A1 (en) Detecting and protecting against inconsistent use of cross-site request forgery mitigation features

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