CN105743869A - Csrf攻击防范方法、网站服务器及浏览器 - Google Patents

Csrf攻击防范方法、网站服务器及浏览器 Download PDF

Info

Publication number
CN105743869A
CN105743869A CN201410770781.2A CN201410770781A CN105743869A CN 105743869 A CN105743869 A CN 105743869A CN 201410770781 A CN201410770781 A CN 201410770781A CN 105743869 A CN105743869 A CN 105743869A
Authority
CN
China
Prior art keywords
token
browser
page
website server
request
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.)
Pending
Application number
CN201410770781.2A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410770781.2A priority Critical patent/CN105743869A/zh
Publication of CN105743869A publication Critical patent/CN105743869A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了一种CSRF攻击防范方法、网站服务器及浏览器。所述方法包括:网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌;向浏览器返回加入所述第一令牌的页面;接收浏览器提交的响应请求,并读取所述响应请求中的第二令牌;如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。通过在响应请求中添加令牌验证机制,防止网站服务器响应伪造的响应请求,有效地防范CSRF攻击。

Description

CSRF攻击防范方法、网站服务器及浏览器
技术领域
本发明涉及网络安全技术领域,尤其涉及CSRF攻击防范方法、网站服务器及浏览器。
背景技术
CSRF(Cross-siteRequestForgery,跨站请求伪造)是一种挟制终端用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。攻击者通过例如电子邮件或者聊天软件发送的伪造链接,使Web应用程序的用户去执行攻击者选择的操作,例如,如果用户登录了网络银行,还没有退出网络银行***时又登录了其他论坛,如果攻击者在论坛中精心构造了一个恶意链接,并诱使该用户点击了该恶意链接,那么该用户在网络银行帐户中的资金就有可能被转移到攻击者指定的帐户中。这是因为,网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie,如果这期间用户点击了恶意链接,浏览器通过恶意链接被人控制着请求了该网站的URL,可能就会执行一些用户不想做的功能,例如转账和修改个人资料。当CSRF针对普通用户发动攻击时,将对用户的数据和操作指令构成严重的威胁;当受攻击的终端用户具有管理员帐户的时候,CSRF攻击将危及整个Web应用程序。
防止CSRF攻击最直接的方式是及时退出网站登录和删除cookie,但当用户需要浏览多个网站时,不停登录和退出登录网站,或者打开和关闭浏览器,将使网络浏览过程变得很繁琐,而且由于很多用户并不具备网络安全知识或者意识,或者为了网站登录的方便,通常不会频繁地删除cookie,不能有效地防止CSRF攻击。另一种防止CSRF攻击的方式,是使用验证码,即浏览器向网站提交响应请求时要求用户在表单中填写验证码,例如图片上的随机字符串,这种方式虽然安全,但即时性和易用性差。又一种防止CSRF攻击的方式,是在响应浏览器请求中URL(UniformResoureLocator,统一资源***)对应的服务器端代码中调用防御逻辑,阻止恶意请求,但这种方式中,安全逻辑与业务逻辑交织在一起,使得代码冗长混乱,且容易遗漏安全逻辑,从而留下安全漏洞,防范CSRF攻击的有效性差。
发明内容
为克服相关技术中CSRF攻击防范易用性和有效性差的问题,本申请提供一种CSRF攻击防范方法。
根据本申请实施例的第一方面,在网站服务器一端,提供一种CSRF攻击防范方法,包括:
网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌;
向浏览器返回加入所述第一令牌的页面;
接收浏览器提交的响应请求,并读取所述响应请求中的第二令牌;
如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
可选的,所述第一令牌为随机字符串。
根据本申请实施例的第二方面,在浏览器一端,提供一种CSRF攻击防范方法,包括:
浏览器接收网站服务器返回的包含第一令牌的页面,所述第一令牌由网站服务器接收到浏览器的页面请求后生成;
根据所述第一令牌得到第二令牌,在页面的每个表单中植入包含所述第二令牌的隐藏域。
将隐藏域的所述第二令牌加入到向网站服务器提交的响应请求中,网站服务器接收到所述响应请求后,比较所述第一令牌和所述第二令牌,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
可选的,所述的CSRF攻击防范方法中,浏览器基于JavaScript框架修改页面文档对象模型,在文档对象模型的每个表单中植入包含所述第二令牌的隐藏域。
可选的,所述的CSRF攻击防范方法中,将隐藏域的所述第二令牌加入到所述响应请求的请求体中,或者将隐藏域的所述第二令牌追加到所述响应请求的查询字符串中。
相应于本申请实施例的第一方面,在本申请实施例的第三方面,提供一种网站服务器,包括:
第一令牌生成单元,用于在网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌;
页面返回单元,用于向浏览器返回加入所述第一令牌的页面;
第二令牌接收单元,用于接收浏览器提交的响应请求,并读取所述响应请求中的第二令牌;
验证单元,用于判断所述第一令牌和所述第二令牌是否一致,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
可选的,所述页面返回单元,包括:
令牌加入子单元,用于在根据所述页面请求向浏览器返回的页面中加入所述第一令牌;
返回子单元,用于向浏览器返回所述页面。
相应于本申请实施例的第二方面,在本申请实施例的第四方面,提供一种浏览器,包括:
页面接收单元,用于浏览器接收网站服务器返回的包含第一令牌的页面,所述第一令牌由网站服务器接收到浏览器的页面请求后生成;
令牌植入单元,用于根据所述第一令牌得到第二令牌,并在页面的每个表单中植入包含所述第二令牌的隐藏域;
令牌提交单元,用于将隐藏域的所述第二令牌加入到向网站服务器提交的响应请求中。
可选的,所述令牌植入单元基于JavaScript框架修改页面文档对象模型,在文档对象模型的每个表单中植入包含所述第二令牌的隐藏域。
可选的,所述令牌提交单元将隐藏域的所述第二令牌加入到所述响应请求的请求体中,或者将隐藏域的所述第二令牌追加到所述响应请求的查询字符串中。
本申请实施例提供的技术方案可以包括以下有益效果:网站服务器在返回给浏览器的页面中加入第一令牌,并保存所述第一令牌,浏览器接收到所述第一令牌后,将所述第一令牌或者变化后的第一令牌作为第二令牌加入到向网站服务器提交的响应请求中。网站服务器接收到所述响应请求中的第二令牌后,将第一令牌和第二令牌比较,如果第一令牌和第二令牌一致,才响应浏览器提交的响应请求。从而防止网站服务器响应伪造的响应请求,有效地防范CSRF攻击。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一示例性实施例示出的一种CSRF攻击防范方法的流程示意图。
图2为本申请一示例性实施例示出的另一种CSRF攻击防范方法的流程示意图。
图3为本申请一示例性实施例示出的一种网站服务器的框图。
图4为本申请一示例性实施例示出的一种浏览器的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了全面理解本申请,在以下详细描述中提到了众多具体的细节,但是本领域技术人员应该理解,本申请可以无需这些具体细节而实现。在其他实施例中,不详细描述公知的方法、过程、组件和电路,以免不必要地导致实施例模糊。
为了更清楚的理解本申请,对浏览器与网站服务器之间的工作过程作简要说明如下。用户在浏览器中输入URL(UniformResourceLocator,统一资源***)地址后,浏览器通过DNS服务器得到用户输入的URL地址对应的IP(InternetProtocol,Internet协议)地址,然后根据IP地址向对应的网站服务器(Web服务器)发送页面请求,即通过HTTP(HypertextTransferProtocol,超文本传送协议)请求所述的URL地址对应的网站的页面。当网站服务器接收到页面请求后,会根据页面请求中的URL返回对应的HTML(HyperTextMark-upLanguage,超文本标记语言)页面,浏览器收到HTML页面后进行解析并展示给用户。当用户通过浏览器对页面进行相关操作,例如点击某个按钮时,浏览器向网站服务器提交对应的请求,所述请求可称为响应请求,网站服务器接收到用户的响应请求后对所述操作做出响应并向浏览器返回响应的结果。
根据本申请实施例的第一方面,在网站服务器一端,提供一种CSRF攻击防范方法。图1为本申请一示例性实施例示出的一种CSRF攻击防范方法的流程示意图,如图1所示,所述方法包括:
步骤S101,网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌。
其中,网站服务器接收到浏览器的页面请求后,生成第一令牌(Token),所述第一令牌可以为随机字符串或者随机数,也可以使用无穷数列中的数字,使用无穷数列中的数字时,对数字的位数进行限定,当无穷数列中的数字超过限定的位数时,再从无穷数列的第一个数字开始,循环使用。使用随机字符串或者随机生成的第一令牌相比使用无穷数列中的数字生成的第一令牌,具有更高的安全性。网站服务器保存生成的第一令牌,并将所述第一令牌与网站服务器记录的浏览器的会话标识(SessionID)对应。
步骤S102,向浏览器返回加入所述第一令牌的页面。
其中,网站服务器将生成的第一令牌加入到根据所述响应请求返回给浏览器的页面中,例如将第一令牌加入到所述页面的body标签内,并返回所述页面。
步骤S103,接收浏览器提交的响应请求中的第二令牌。
其中,浏览器接收到网站服务器返回的页面后,读取页面,并读取页面中的第一令牌。由于网站服务器返回的页面一般为HTML(HyperTextMark-upLanguage,超文本标记语言)文档,浏览器接收和读取所述页面,即浏览器读取网站服务器返回的HTML文档,并读取HTML文档中的第一令牌。
表单是浏览器的页面与网站服务器交互过程中最重要的信息来源,通常提交响应请求即提交表单数据,多个表单不能同时提交。表单中的隐藏域对用户不可见,且包含于表单隐藏域的数据在提交表单时不会丢失。因此,浏览器在读取到第一令牌后,在页面的每个表单中***隐藏域,并将第一令牌作为所述第二令牌包含于所述隐藏域中。在浏览器向网站发服务器提交响应请求时,所述第二令牌,亦即第一令牌,将同时被提交。
当网站服务器接收到浏览器提交的响应请求,即表单数据后,亦同时接收了包含于表单隐藏域中的第二令牌。网站服务器会解析所述表单数据同时得到所述第二令牌。网站服务器接收浏览器提交的响应请求时,同时能够获得浏览器的会话标识。在得到所述第二令牌后,网站服务器根据浏览器的会话标识,查找到已保存的与所述会话标识对应的第一令牌,将第二令牌与第一令牌进行比较,判断所述第二令牌和第一令牌是否一致。
所述第二令牌也可以根据第一令牌加以变化得到,例如,如果第一令牌为字符串,则浏览器将第一令牌去掉最后一个字符作为第二令牌,如果第一令牌为数字,将第一令牌加1作为第二令牌,并且在每个表单植入包含第二令牌的隐藏域。对第一令牌进行变化得到第二令牌的算法预先设定,并且作为网站服务器和浏览器之间的协议。这种情况下,网站服务器得到所述第二令牌,并查找到与浏览器的IP地址对应的第一令牌后,会根据相同的算法,对查找到的第一令牌进行处理,然后将第二令牌和处理后的第一令牌进行比较,判断第二令牌和第一令牌是否一致。
浏览器也可以将所述第二令牌加入到页面的超链接标签中,在提交响应请求时,所述第二令牌添加于与超链接元素对应的URL地址中提交给网站服务器。网站服务器从所述URL中提取所述第二令牌,将第二令牌与第一令牌进行比较。但该种方式下,第二令牌会在与link元素对应的URL地址中暴露,安全性较差。
步骤S104,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
其中,网站服务器比较所述第一令牌和所述第二令牌后,如果所述第一令牌和所述第二令牌一致,则所述响应请求为合法请求,验证通过,网站服务器将根据所述响应请求作出响应;如果所述第一令牌和所述第二令牌不一致,则所述响应请求非法,网站服务器拒绝所述响应请求。
本申请实施例所提供的CSRF攻击防范方法中,网站服务器在返回给浏览器的页面中加入第一令牌,并保存所述第一令牌,浏览器接收到所述第一令牌后,将所述第一令牌或者变化后的第一令牌作为第二令牌加入到向网站服务器提交的响应请求中。网站服务器接收到所述响应请求中的第二令牌后,将第一令牌和第二令牌比较,如果第一令牌和第二令牌一致,才响应浏览器提交的响应请求。从而通过增加令牌验证环节,防止网站服务器响应伪造的响应请求,防范CSRF攻击。
根据本申请实施例的第二方面,在浏览器一端,提供一种CSRF攻击防范方法。图2为本申请一示例性实施例示出的一种CSRF攻击防范方法的流程示意图,如图2所示,所述方法包括:
步骤S201,浏览器接收网站服务器返回的包含第一令牌的页面,所述第一令牌由网站服务器接收到浏览器的页面请求后生成。
其中,网站服务器接收到浏览器的页面请求后,生成第一令牌(Token),并保存生成的第一令牌,所述第一令牌与网站服务器记录的浏览器的会话标识对应。同时网站服务器将生成的第一令牌加入到返回给浏览器的页面中,并返回所述页面。浏览器接收到网站服务器返回的页面后,读取页面,并读取页面中的第一令牌。由于网站服务器返回的页面一般为HTML(HyperTextMark-upLanguage,超文本标记语言)文档,浏览器接收和读取所述页面,即浏览器读取网站服务器返回的HTML文档,并读取HTML文档中的第一令牌。
步骤S202,根据所述第一令牌得到第二令牌,在页面的每个表单中植入包含所述第二令牌的隐藏域。
步骤S203,将隐藏域的所述第二令牌加入向网站服务器提交的响应请求中,网站服务器接收到所述响应请求后,比较所述第一令牌和所述第二令牌,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
浏览器在读取到第一令牌后,在页面的每个表单中***隐藏域,并将第一令牌作为所述第二令牌包含于所述隐藏域中。在浏览器向网站服务器提交响应请求时,所述第二令牌,亦即第一令牌,将同时被提交。
所述第二令牌也可以根据第一令牌加以变化得到,例如,如果第一令牌为字符串,则浏览器将第一令牌去掉最后一个字符作为第二令牌,如果第一令牌为数字,将第一令牌加1作为第二令牌,并且在每个表单植入包含第二令牌的隐藏域。对第一令牌进行变化得到第二令牌的算法预先设定,并且作为网站服务器和浏览器之间的协议。这种情况下,网站服务器得到所述第二令牌,并查找到与浏览器的IP地址对应的第一令牌后,会根据相同的算法,对查找到的第一令牌进行处理,然后将第二令牌和处理后的第一令牌进行比较,判断第二令牌和第一令牌是否一致。
浏览器也可以将所述第二令牌加入到页面的超链接标签中,在提交响应请求时,所述第二令牌添加于与超链接元素对应的URL地址中提交给网站服务器。网站服务器从所述URL地址中提取所述第二令牌,将第二令牌与第一令牌进行比较。但该种方式下,第二令牌会在与超链接元素对应的URL地址中暴露,安全性较差。
由于使用JavaScript框架的HTML页面可以容易地来修改页面的HTMLDOM(DocumentObjectModel,文档对象模型)结构,方便在文档对象模型的每个表单中植入包含所述第一令牌的隐藏域,因此浏览器优选使用JavaScript脚本语言实现,并基于JavaScript框架修改页面文档对象模型,在文档对象模型的每个表单中植入包含所述第二令牌的隐藏域。
浏览器提交响应请求时,可以将隐藏域的所述第二令牌和其他表单数据加入到所述响应请求的请求体中,从而将所述第二令牌提交至网站服务器,或者将隐藏域的所述第二令牌追加到对应的查询字符串中,以查询字符串的方式提交至网站服务器。但后者可能会破坏表单的URL路径,例如加上所述第二令牌后URL路径超过了长度限制,因此优选的方式是将第二令牌加入到响应请求的请求体中。
浏览器可以使用JavaScript代码提交响应请求,即提交表单数据,也可以使用Ajax(AsynchronousJavaScriptAndXML,异步JavaScript和XML,XML:ExtensibleMarkupLanguage,可扩展标记语言)进行提交,使用Ajax可以异步提交而且提交代码更简洁,并且使用Ajax可以实现页面的局部刷新,有更好的用户体验。
当网站服务器接收到浏览器提交的响应请求,即表单数据后,亦同时接收了包含于表单隐藏域中的第二令牌。网站服务器会解析所述表单数据并得到所述第二令牌。网站服务器接收浏览器的响应请求时,同时能够获得浏览器的会话标识。在得到所述第二令牌后,网站服务器根据浏览器的会话标识,查找到已保存的与所述IP地址对应的第一令牌,将第二令牌与第一令牌进行比较,判断所述第二令牌和第一令牌是否一致。如果所述第二令牌和第一令牌一致,则浏览器提交的响应请求验证通过,网站服务器根据所述响应请求做出响应处理,并将响应处理的结果返回至浏览器。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,并存储在一个存储介质中,包括若干指令用以使得一台智能设备执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储数据和程序代码的介质。
相应于本申请实施例的第一方面,根据本申请实施例的第三方面,提供一种网站服务器。图3为本申请一示例性实施例示出的一种网站服务器的结构示意图。如图3所示,所述网站服务器包括:
第一令牌生成单元U301,用于在网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌;
页面返回单元U302,用于向浏览器返回加入所述第一令牌的页面;
第二令牌接收单元U303,用于向浏览器返回所述页面后,接收浏览器提交的响应请求,并读取所述响应请求中的第二令牌;
验证单元U304,用于判断所述第一令牌和所述第二令牌是否一致,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
其中,所述页面返回单元U302,包括:
令牌加入子单元,用于在根据所述页面请求向浏览器返回的页面中加入所述第一令牌;
返回子单元,用于向浏览器返回所述页面。
相应于本申请实施例的第二方面,根据本申请实施例的第四方面,提供一种浏览器。图4为本申请一示例性实施例示出的一种浏览器的结构示意图。如图4所示,所述浏览器包括:
页面接收单元U401,用于浏览器接收网站服务器返回的包含第一令牌的页面,所述第一令牌由网站服务器接收到浏览器的页面请求后生成;
令牌植入单元U402,用于根据所述第一令牌得到第二令牌,并在页面的每个表单中植入包含所述第二令牌的隐藏域;
令牌提交单元U403,用于将隐藏域的所述第二令牌加入到向网站服务器提交的响应请求中,网站服务器接收到所述响应请求后,比较所述第一令牌和所述第二令牌,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
其中,所述令牌植入单元U402将第一令牌直接作为第二令牌,或者根据第一令牌变化得到第二令牌,例如,如果第一令牌为字符串,浏览器将第一令牌去掉最后一个字符作为第二令牌,如果第一令牌为数字,将第一令牌加1作为第二令牌,并且在每个表单植入包含第二令牌的隐藏域。对第一令牌进行变化得到第二令牌的算法预先设定,并且作为网站服务器和浏览器之间的协议。
在一种可能的实施方式中,所述令牌植入单元U402基于JavaScript框架修改页面的文档对象模型,在文档对象模型的每个表单中植入包含所述第二令牌的隐藏域。
其中,所述令牌提交单元将隐藏域的所述第二令牌加入到所述响应请求的请求体中,或者将隐藏域的所述第二令牌追加到所述响应请求的查询字符串中。优选的是所述令牌提交单元将将隐藏域的所述第二令牌追加到所述响应请求的查询字符串中。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者逆序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、装置或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、装置或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、装置或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种CSRF攻击防范方法,其特征在于,包括:
网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌;
向浏览器返回加入所述第一令牌的页面;
接收浏览器提交的响应请求,并读取所述响应请求中的第二令牌;
如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
2.如权利要求1所述的CSRF攻击防范方法,其特征在于,所述第一令牌为随机字符串。
3.一种CSRF攻击防范方法,其特征在于,包括:
浏览器接收网站服务器返回的包含第一令牌的页面,所述第一令牌由网站服务器接收到浏览器的页面请求后生成;
根据所述第一令牌得到第二令牌,在页面的每个表单中植入包含所述第二令牌的隐藏域;
将隐藏域的所述第二令牌加入到向网站服务器提交的响应请求中,网站服务器接收到所述响应请求后,比较所述第一令牌和所述第二令牌,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
4.如权利要求3所述的CSRF攻击防范方法,其特征在于,浏览器基于JavaScript框架修改页面文档对象模型,在文档对象模型的每个表单中植入包含所述第二令牌的隐藏域。
5.如权利要求3或4所述的CSRF攻击防范方法,其特征在于,将隐藏域的所述第二令牌加入到所述响应请求的请求体中,或者将隐藏域的所述第二令牌追加到所述响应请求的查询字符串中。
6.一种网站服务器,其特征在于,包括:
第一令牌生成单元,用于在网站服务器接收到浏览器的页面请求后,生成第一令牌,并保存所述第一令牌;
页面返回单元,用于向浏览器返回加入所述第一令牌的页面;
第二令牌接收单元,用于接收浏览器提交的响应请求,并读取所述响应请求中的第二令牌;
验证单元,用于判断所述第一令牌和所述第二令牌是否一致,如果所述第一令牌和所述第二令牌一致,则所述响应请求验证通过。
7.如权利要求6所述的网站服务器,其特征在于,所述页面返回单元,包括:
令牌加入子单元,用于在根据所述页面请求向浏览器返回的页面中加入所述第一令牌;
返回子单元,用于向浏览器返回所述页面。
8.一种浏览器,其特征在于,包括:
页面接收单元,用于浏览器接收网站服务器返回的包含第一令牌的页面,所述第一令牌由网站服务器接收到浏览器的页面请求后生成;
令牌植入单元,用于根据所述第一令牌得到第二令牌,并在页面的每个表单中植入包含所述第二令牌的隐藏域;
令牌提交单元,用于将隐藏域的所述第二令牌加入到向网站服务器提交的响应请求中。
9.如权利要求8所述的浏览器,其特征在于,所述令牌植入单元基于JavaScript框架修改页面文档对象模型,在文档对象模型的每个表单中植入包含所述第二令牌的隐藏域。
10.如权利要求8或9所述的浏览器,其特征在于,所述令牌提交单元将隐藏域的所述第二令牌加入到所述响应请求的请求体中,或者将隐藏域的所述第二令牌追加到所述响应请求的查询字符串中。
CN201410770781.2A 2014-12-12 2014-12-12 Csrf攻击防范方法、网站服务器及浏览器 Pending CN105743869A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410770781.2A CN105743869A (zh) 2014-12-12 2014-12-12 Csrf攻击防范方法、网站服务器及浏览器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410770781.2A CN105743869A (zh) 2014-12-12 2014-12-12 Csrf攻击防范方法、网站服务器及浏览器

Publications (1)

Publication Number Publication Date
CN105743869A true CN105743869A (zh) 2016-07-06

Family

ID=56241567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410770781.2A Pending CN105743869A (zh) 2014-12-12 2014-12-12 Csrf攻击防范方法、网站服务器及浏览器

Country Status (1)

Country Link
CN (1) CN105743869A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790238A (zh) * 2017-01-19 2017-05-31 北京神州绿盟信息安全科技股份有限公司 一种跨站请求伪造csrf防御认证方法和装置
CN108259619A (zh) * 2018-01-30 2018-07-06 成都东软学院 网络请求防护方法及网络通信***
CN108390878A (zh) * 2018-02-26 2018-08-10 腾讯科技(深圳)有限公司 用于验证网络请求安全性的方法、装置
CN110611611A (zh) * 2019-09-26 2019-12-24 四川天邑康和通信股份有限公司 一种用于家庭网关的web安全访问方法
CN110858836A (zh) * 2018-08-24 2020-03-03 阿里巴巴集团控股有限公司 网络攻击防御方法及设备
CN111212016A (zh) * 2018-11-21 2020-05-29 阿里巴巴集团控股有限公司 跨站请求处理方法、装置及电子设备
CN111404937A (zh) * 2020-03-16 2020-07-10 腾讯科技(深圳)有限公司 一种服务器漏洞的检测方法和装置
CN112104458A (zh) * 2020-09-04 2020-12-18 紫光云(南京)数字技术有限公司 一种基于手机令牌防御csrf攻击的方法
CN112866265A (zh) * 2021-01-27 2021-05-28 湖南快乐阳光互动娱乐传媒有限公司 一种csrf攻击防护方法及装置
CN113343278A (zh) * 2021-07-05 2021-09-03 湖南快乐阳光互动娱乐传媒有限公司 一种防御csrf攻击的登录请求校验方法及装置
CN114499960A (zh) * 2021-12-24 2022-05-13 深圳开源互联网安全技术有限公司 一种csrf漏洞识别方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783771A (zh) * 2010-03-24 2010-07-21 杭州华三通信技术有限公司 一种实现负载均衡持续性的方法和设备
CN102480490A (zh) * 2010-11-30 2012-05-30 国际商业机器公司 一种用于防止csrf攻击的方法和设备
CN103164191A (zh) * 2011-12-08 2013-06-19 腾讯科技(深圳)有限公司 网页元素拖拽方法和装置
CN103501304A (zh) * 2013-10-12 2014-01-08 深信服网络科技(深圳)有限公司 控制web***越权访问的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783771A (zh) * 2010-03-24 2010-07-21 杭州华三通信技术有限公司 一种实现负载均衡持续性的方法和设备
CN102480490A (zh) * 2010-11-30 2012-05-30 国际商业机器公司 一种用于防止csrf攻击的方法和设备
CN103164191A (zh) * 2011-12-08 2013-06-19 腾讯科技(深圳)有限公司 网页元素拖拽方法和装置
CN103501304A (zh) * 2013-10-12 2014-01-08 深信服网络科技(深圳)有限公司 控制web***越权访问的方法及装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790238B (zh) * 2017-01-19 2020-07-10 北京神州绿盟信息安全科技股份有限公司 一种跨站请求伪造csrf防御认证方法和装置
CN106790238A (zh) * 2017-01-19 2017-05-31 北京神州绿盟信息安全科技股份有限公司 一种跨站请求伪造csrf防御认证方法和装置
CN108259619A (zh) * 2018-01-30 2018-07-06 成都东软学院 网络请求防护方法及网络通信***
CN108390878A (zh) * 2018-02-26 2018-08-10 腾讯科技(深圳)有限公司 用于验证网络请求安全性的方法、装置
CN110858836A (zh) * 2018-08-24 2020-03-03 阿里巴巴集团控股有限公司 网络攻击防御方法及设备
CN111212016A (zh) * 2018-11-21 2020-05-29 阿里巴巴集团控股有限公司 跨站请求处理方法、装置及电子设备
CN111212016B (zh) * 2018-11-21 2022-09-23 阿里巴巴集团控股有限公司 跨站请求处理方法、装置及电子设备
CN110611611B (zh) * 2019-09-26 2021-03-26 四川天邑康和通信股份有限公司 一种用于家庭网关的web安全访问方法
CN110611611A (zh) * 2019-09-26 2019-12-24 四川天邑康和通信股份有限公司 一种用于家庭网关的web安全访问方法
CN111404937B (zh) * 2020-03-16 2021-12-10 腾讯科技(深圳)有限公司 一种服务器漏洞的检测方法和装置
CN111404937A (zh) * 2020-03-16 2020-07-10 腾讯科技(深圳)有限公司 一种服务器漏洞的检测方法和装置
CN112104458A (zh) * 2020-09-04 2020-12-18 紫光云(南京)数字技术有限公司 一种基于手机令牌防御csrf攻击的方法
CN112866265A (zh) * 2021-01-27 2021-05-28 湖南快乐阳光互动娱乐传媒有限公司 一种csrf攻击防护方法及装置
CN113343278A (zh) * 2021-07-05 2021-09-03 湖南快乐阳光互动娱乐传媒有限公司 一种防御csrf攻击的登录请求校验方法及装置
CN113343278B (zh) * 2021-07-05 2022-07-26 湖南快乐阳光互动娱乐传媒有限公司 一种防御csrf攻击的登录请求校验方法及装置
CN114499960A (zh) * 2021-12-24 2022-05-13 深圳开源互联网安全技术有限公司 一种csrf漏洞识别方法、装置及计算机可读存储介质
CN114499960B (zh) * 2021-12-24 2024-03-22 深圳开源互联网安全技术有限公司 一种csrf漏洞识别方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105743869A (zh) Csrf攻击防范方法、网站服务器及浏览器
EP3818675B1 (en) System and method for polluting phishing campaign responses
US10601868B2 (en) Enhanced techniques for generating and deploying dynamic false user accounts
CN103944900B (zh) 一种基于加密的跨站请求攻击防范方法及其装置
US9032085B1 (en) Identifying use of software applications
CN102480490B (zh) 一种用于防止csrf攻击的方法和设备
US8763116B1 (en) Detecting fraudulent activity by analysis of information requests
CN107634967B (zh) 一种CSRF攻击的CSRFToken防御***和方法
CN108259619B (zh) 网络请求防护方法及网络通信***
Siddiqui et al. Cross site request forgery: A common web application weakness
CN105306473A (zh) 一种防止注入攻击的方法、客户端、服务器和***
CN103229181A (zh) 通过对url进行模糊处理来保护网站和网站用户
Chaudhary et al. Auditing defense against XSS worms in online social network-based web applications
Nagunwa Behind identity theft and fraud in cyberspace: the current landscape of phishing vectors
Rankothge et al. Identification and mitigation tool for cross-site request forgery (CSRF)
Tout et al. Phishpin: An identity-based anti-phishing approach
Ahmed et al. PhishCatcher: Client-Side Defense Against Web Spoofing Attacks Using Machine Learning
US11470113B1 (en) Method to eliminate data theft through a phishing website
CN105337946A (zh) 网页防伪验证的方法和装置
Siadati et al. Verification code forwarding attack (short paper)
Blatz Csrf: Attack and defense
Khadir et al. Efforts and Methodologies used in Phishing Email Detection and Filtering: A Survey.
Sentamilselvan et al. Survey on cross site request forgery
Dharmavaram Formjacking attack: Are we safe?
Muhindi et al. A Literature Survey of Visual Similarity Snooping Attacks in Emails

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160706