CN106341370B - 一种防御跨站请求伪造攻击的方法及装置 - Google Patents
一种防御跨站请求伪造攻击的方法及装置 Download PDFInfo
- Publication number
- CN106341370B CN106341370B CN201510393930.2A CN201510393930A CN106341370B CN 106341370 B CN106341370 B CN 106341370B CN 201510393930 A CN201510393930 A CN 201510393930A CN 106341370 B CN106341370 B CN 106341370B
- Authority
- CN
- China
- Prior art keywords
- token
- service
- client
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种防御跨站请求伪造攻击的方法及装置,有助于使令牌校验方法的代码改动量小,从而达到功能实现简单并且对服务器造成的压力小的目的。本发明的一种防御跨站请求伪造攻击的方法包括:客户端向服务端请求页面,然后接收服务端返回的页面内容、脚本代码和业务域cookie;客户端运行所述脚本代码从而生成固定的令牌并写入业务域cookie中,并且设置令牌过期时间;客户端将业务请求和所述业务域cookie发送至所述服务端,然后接收所述服务端的响应内容并显示。
Description
技术领域
本发明涉及计算机网络技术领域,特别地涉及一种防御跨站请求伪造攻击的方法及装置。
背景技术
跨站请求伪造CSRF(Cross-site request forgery),是一种对网站的恶意利用。CSRF攻击是通过在授权用户访问的页面中包含恶意链接或者脚本的方式进行的。例如:一个网站用户甲可能正在浏览聊天论坛,而同时另一个用户乙也在此论坛中,并且后者刚刚发布了一个具有用户甲银行链接的图片消息。设想一下,用户乙编写了一个在用户甲的银行站点上进行取款的表格提交的链接,并将图片作为此链接的标签。如果用户甲的银行在cookie中保存他的授权信息,并且此cookie没有过期,那么当用户甲的浏览器尝试加载图片时将提交这个取款表格和他的cookie,这样在没经用户甲同意的情况下便授权了这次事务。
CSRF是一种依赖web浏览器的、被混淆过的代理人攻击(deputy attack)。在上面银行示例中的代理人是用户甲的web浏览器,它被混淆后误将用户甲的授权直接交给了用户乙使用。这种攻击方式是通过保存在用户浏览器中的cookie进行攻击,使已认证的用户在完全无知的情况下发送HTTP请求到那个信任他的站点,进而进行用户不愿做的行为,给用户带来很大的损失。因为这个不是用户真正想发出的请求,这就是所谓的伪造请求。
在Web应用程序侧防御CSRF攻击,一般都是利用提交者(referer)、令牌(token)或者验证码。其中令牌校验应用更为广泛。
现有的防御CSRF攻击的令牌校验的业务流程如图1所示,主要包括以下步骤:
步骤S11:客户端向服务端请求访问页面;
步骤S12:服务端接收到客户端的请求后,对其进行响应,返回页面内容、动态生成的令牌及业务域cookie;
步骤S13:客户端发送业务请求,包含两种情况,如步骤S131,客户端正常域请求时发送业务请求,同时发送服务端返回的令牌和业务域cookie;步骤S132,客户端恶意域请求时发送伪造业务请求和业务域cookie;
步骤S14:服务端对客户端发送的业务请求进行处理,对应步骤S13的两种情况,分别为步骤S141对应步骤S131的情况,服务端对客户端发送的令牌校验通过,响应业务请求;步骤S142对应步骤S132的情况,服务端未读取到令牌,校验不通过,拒绝业务请求。
由上述步骤S13和S14可以看出,对于正常域的用户业务请求,令牌校验可以通过,但是对于恶意域的伪造业务请求,由于浏览器客户端的同源策略限制,无法获取相应的令牌,因此令牌校验不通过,业务请求失败。
通过令牌校验的方法可以有效地防御CSRF攻击。然而,现有的令牌校验方法在服务端动态生成令牌及校验,存在的主要问题是代码改动量大,使得实现比较复杂,并且对服务器造成的压力大。因此,需要一种改良的防御跨站请求伪造攻击的方法。
发明内容
有鉴于此,本发明提供了一种防御跨站请求伪造攻击的方法及装置,有助于使令牌校验方法的代码改动量小,从而达到功能实现简单并且对服务器造成的压力小的目的。
为实现上述目的,根据本发明的一个方面,提供了一种防御跨站请求伪造攻击的方法。
本发明的一种防御跨站请求伪造攻击的方法,包括:客户端向服务端请求页面,然后接收服务端返回的页面内容、脚本代码和业务域cookie;客户端运行所述脚本代码从而生成固定的令牌并写入业务域cookie中,并且设置令牌过期时间;客户端将业务请求和所述业务域cookie发送至所述服务端,然后接收所述服务端的响应内容并显示。
可选地,所述脚本代码为JS程序代码。
可选地,所述令牌过期时间不超过1秒。
根据本发明的另一方面,提供了一种防御跨站请求伪造攻击的方法。
本发明的一种防御跨站请求伪造攻击的方法,包括:服务端在接收到客户端的页面请求后,向该客户端返回页面内容和业务域cookie以及用于生成固定令牌的脚本代码;服务端接收所述客户端发来的业务请求和包含有固定令牌的业务域cookie,然后按照本地的固定令牌判断该业务域cookie中的由所述客户端运行所述脚本代码而生成的固定令牌是否过期,如果过期,则拒绝所述业务请求,否则响应所述业务请求。
可选地,所述脚本代码为JS代码。
根据本发明的又一方面,提供了一种防御跨站请求伪造攻击的装置。
本发明的一种防御跨站请求伪造攻击的装置包括:页面请求模块,用于向服务端请求页面,然后接收服务端返回的页面内容、脚本代码和业务域cookie;令牌生成模块,用于运行所述脚本代码从而生成固定的令牌并写入业务域cookie中,并且设置令牌过期时间;业务请求模块,用于将业务请求和所述业务域cookie发送至所述服务端,然后接收所述服务端的响应内容并显示。
根据本发明的再一方面,提供了一种防御跨站请求伪造攻击的装置。
本发明的一种防御跨站请求伪造攻击的装置包括:页面响应模块,用于在接收到客户端的页面请求后,向该客户端返回页面内容和业务域cookie以及用于生成固定令牌的脚本代码;业务处理模块,用于接收所述客户端发来的业务请求和包含有固定令牌的业务域cookie,然后按照本地的固定令牌判断该业务域cookie中的由所述客户端运行所述脚本代码而生成的固定令牌是否过期,如果过期,则拒绝所述业务请求,否则响应所述业务请求。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种防御跨站请求伪造攻击的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现一种防御跨站请求伪造攻击的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种防御跨站请求伪造攻击的计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现一种防御跨站请求伪造攻击的方法中任一所述的方法。
根据本发明的技术方案,依据跨站请求伪造攻击的应用场景和同源策略中cookie只能在父域和子域之间设置的特性,本发明将防御跨站请求伪造攻击的验证令牌设置到业务域cookie中,并设置极短过期时间,即可防御跨站请求伪造攻击。
本发明无需服务端动态生成令牌,仅需对客户端生成的固定且有极短期限的令牌与固定令牌进行比较校验即可达到防御跨站请求伪造攻击的目的,在功能实现代码方面也只需要增加简单的前端代码和服务端代码即可完成。从而达到实现简单,且极大降低服务端生成和校验令牌的压力的效果。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有的防御跨站请求伪造攻击的方法的业务流程图;
图2是根据本发明实施方式的一种防御跨站请求伪造攻击的方法的业务流程图;
图3是根据本发明实施方式的一种防御跨站请求伪造攻击的装置示意图;
图4是根据本发明实施方式的一种防御跨站请求伪造攻击的装置示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图2是根据本发明实施方式的一种防御跨站请求伪造攻击的方法的业务流程图。如图2所示,本发明的一种防御跨站请求伪造攻击的方法主要包括如下的步骤S21至步骤S24。
步骤S21:客户端向服务端请求访问页面;
步骤S22:服务端接收到客户端的请求后,对其进行响应,返回页面内容、生成固定令牌的脚本代码及业务域cookie;
步骤S23:客户端发送业务请求,包含两种情况,如步骤S231,客户端正常域请求时发送业务请求,同时发送含有由所述脚本代码生成的有期限的固定令牌的业务域cookie,其中,令牌的期限很短,一般不超过1秒;步骤S232,客户端恶意域请求时发送伪造业务请求和业务域cookie;
步骤S24:服务端对客户端发送的业务请求进行处理,对应步骤S23的两种情况,分别为步骤S241对应步骤S231的情况,服务端校验客户端发送的业务域cookie中的令牌通过,响应业务请求;步骤S242对应步骤S232的情况,由于业务域cookie中的令牌失效,校验不通过,拒绝业务请求。
由上述步骤可以看出,对于正常域的用户业务请求,由于客户端生成的固定令牌在有效期内,因此服务端校验可以通过;但是对于恶意域的伪造业务请求,由于浏览器客户端的同源策略限制,无法写入相应的令牌到业务域cookie中,而业务域cookie中原来的令牌由于过期已失效,因此令牌校验不通过,业务请求失败。
采用如上所述的技术方案,根据跨站请求伪造攻击的应用场景和同源策略中cookie只能在父域和子域之间设置的特性,本发明将防御跨站请求伪造攻击的验证令牌设置到业务域cookie中,并设置极短过期时间,即可防御跨站请求伪造攻击。
本发明无需服务端动态生成令牌,仅需对客户端生成的固定且有极短期限的令牌与固定令牌进行比较校验即可达到防御跨站请求伪造攻击的目的,在功能实现代码方面也只需要增加简单的前端代码和服务端代码即可完成。从而达到实现简单,且极大降低服务端生成和校验令牌的压力的效果。
图3是根据本发明实施方式的一种防御跨站请求伪造攻击的装置示意图,其中,该装置设置在客户端。如图3所示的一种防御跨站请求伪造攻击的装置30包括:
页面请求模块31,用于向服务端请求页面,然后接收服务端返回的页面内容、脚本代码和业务域cookie;
令牌生成模块32,用于运行所述脚本代码从而生成固定的令牌并写入业务域cookie中,并且设置令牌过期时间;
业务请求模块33,用于将业务请求和所述业务域cookie发送至所述服务端,然后接收所述服务端的响应内容并显示。
图4是根据本发明实施方式的一种防御跨站请求伪造攻击的装置示意图,其中,该装置设置在服务端。如图4所示的一种防御跨站请求伪造攻击的装置40包括:
页面响应模块41,用于在接收到客户端的页面请求后,向该客户端返回页面内容和业务域cookie以及用于生成固定令牌的脚本代码;
业务处理模块42,用于接收所述客户端发来的业务请求和包含有固定令牌的业务域cookie,然后按照本地的固定令牌判断该业务域cookie中的由所述客户端运行所述脚本代码而生成的固定令牌是否过期,如果过期,则拒绝所述业务请求,否则响应所述业务请求。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (9)
1.一种防御跨站请求伪造攻击的方法,其特征在于,包括:
客户端向服务端请求页面,然后接收服务端返回的页面内容、脚本代码和业务域cookie;
客户端运行所述脚本代码从而生成固定的令牌并写入业务域cookie中,并且设置极短的令牌过期时间;
客户端将业务请求和所述业务域cookie发送至所述服务端,然后接收所述服务端的响应内容并显示;其中,当客户端正常域请求时发送业务请求,同时发送含有由所述脚本代码生成的有期限的固定令牌的业务域cookie,进而服务端按照本地的固定令牌校验客户端发送的业务域cookie中的令牌是否过期,如果不过期则通过并响应业务请求;当客户端恶意域请求时发送伪造业务请求和业务域cookie,进而服务端按照本地的固定令牌校验客户端发送的业务域cookie中的令牌是否过期,如果过期则令牌失效并拒绝业务请求。
2.根据权利要求1所述的方法,其特征在于,所述脚本代码为JS程序代码。
3.根据权利要求1或2所述的方法,其特征在于,所述令牌过期时间不超过1秒。
4.一种防御跨站请求伪造攻击的方法,其特征在于,包括:
服务端在接收到客户端的页面请求后,向该客户端返回页面内容和业务域cookie以及用于生成固定令牌的脚本代码;
服务端接收所述客户端发来的业务请求和包含有固定令牌的业务域cookie,然后按照本地的固定令牌判断该业务域cookie中的由所述客户端运行所述脚本代码而生成的固定令牌是否过期,如果过期,则拒绝所述业务请求,否则响应所述业务请求。
5.根据权利要求4所述的方法,其特征在于,所述脚本代码为JS代码。
6.一种防御跨站请求伪造攻击的装置,其特征在于,包括:
页面请求模块,用于向服务端请求页面,然后接收服务端返回的页面内容、脚本代码和业务域cookie;
令牌生成模块,用于运行所述脚本代码从而生成固定的令牌并写入业务域cookie中,并且设置极短的令牌过期时间;
业务请求模块,用于将业务请求和所述业务域cookie发送至所述服务端,然后接收所述服务端的响应内容并显示;其中,当客户端正常域请求时发送业务请求,同时发送含有由所述脚本代码生成的有期限的固定令牌的业务域cookie,进而服务端按照本地的固定令牌校验客户端发送的业务域cookie中的令牌是否过期,如果不过期则通过并响应业务请求;当客户端恶意域请求时发送伪造业务请求和业务域cookie,进而服务端按照本地的固定令牌校验客户端发送的业务域cookie中的令牌是否过期,如果过期则令牌失效并拒绝业务请求。
7.一种防御跨站请求伪造攻击的装置,其特征在于,包括:
页面响应模块,用于在接收到客户端的页面请求后,向该客户端返回页面内容和业务域cookie以及用于生成固定令牌的脚本代码;
业务处理模块,用于接收所述客户端发来的业务请求和包含有固定令牌的业务域cookie,然后按照本地的固定令牌判断该业务域cookie中的由所述客户端运行所述脚本代码而生成的固定令牌是否过期,如果过期,则拒绝所述业务请求,否则响应所述业务请求。
8.一种防御跨站请求伪造攻击的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510393930.2A CN106341370B (zh) | 2015-07-07 | 2015-07-07 | 一种防御跨站请求伪造攻击的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510393930.2A CN106341370B (zh) | 2015-07-07 | 2015-07-07 | 一种防御跨站请求伪造攻击的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341370A CN106341370A (zh) | 2017-01-18 |
CN106341370B true CN106341370B (zh) | 2020-11-24 |
Family
ID=57826352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510393930.2A Active CN106341370B (zh) | 2015-07-07 | 2015-07-07 | 一种防御跨站请求伪造攻击的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106341370B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790238B (zh) * | 2017-01-19 | 2020-07-10 | 北京神州绿盟信息安全科技股份有限公司 | 一种跨站请求伪造csrf防御认证方法和装置 |
CN108512835A (zh) * | 2018-03-15 | 2018-09-07 | 链家网(北京)科技有限公司 | 一种业务唯一识别码验证方法及系统 |
CN111212016B (zh) * | 2018-11-21 | 2022-09-23 | 阿里巴巴集团控股有限公司 | 跨站请求处理方法、装置及电子设备 |
CN112104458A (zh) * | 2020-09-04 | 2020-12-18 | 紫光云(南京)数字技术有限公司 | 一种基于手机令牌防御csrf攻击的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312666A (zh) * | 2012-03-09 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种防御跨站请求伪造csrf攻击的方法、系统和装置 |
CN103679018A (zh) * | 2012-09-06 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
CN104079611A (zh) * | 2013-03-29 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 用于防止跨站点请求伪造的方法、相关装置及系统 |
CN104573520A (zh) * | 2013-10-09 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 检测常驻式跨站脚本漏洞的方法和装置 |
CN104618404A (zh) * | 2015-03-10 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 防止网络攻击Web服务器的处理方法、装置及系统 |
-
2015
- 2015-07-07 CN CN201510393930.2A patent/CN106341370B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312666A (zh) * | 2012-03-09 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种防御跨站请求伪造csrf攻击的方法、系统和装置 |
CN103679018A (zh) * | 2012-09-06 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
CN104079611A (zh) * | 2013-03-29 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 用于防止跨站点请求伪造的方法、相关装置及系统 |
CN104573520A (zh) * | 2013-10-09 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 检测常驻式跨站脚本漏洞的方法和装置 |
CN104618404A (zh) * | 2015-03-10 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 防止网络攻击Web服务器的处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106341370A (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9900346B2 (en) | Identification of and countermeasures against forged websites | |
US8689001B1 (en) | Method and system for protecting user identification information | |
RU2607229C2 (ru) | Системы и способы динамического агрегирования показателей для обнаружения сетевого мошенничества | |
US8312073B2 (en) | CAPTCHA-free throttling | |
Mao et al. | Defeating cross-site request forgery attacks with browser-enforced authenticity protection | |
US10778668B2 (en) | HTTP session validation module | |
US8850567B1 (en) | Unauthorized URL requests detection | |
US8924553B2 (en) | Multifactor validation of requests to thwart cross-site attacks | |
US20060174119A1 (en) | Authenticating destinations of sensitive data in web browsing | |
CN106341370B (zh) | 一种防御跨站请求伪造攻击的方法及装置 | |
CA2751490A1 (en) | Using social information for authenticating a user session | |
Siddiqui et al. | Cross site request forgery: A common web application weakness | |
CN114616795B (zh) | 用于防止重试或重放攻击的安全机制 | |
Ulqinaku et al. | Is real-time phishing eliminated with {FIDO}? social engineering downgrade attacks against {FIDO} protocols | |
US11997210B2 (en) | Protection of online applications and webpages using a blockchain | |
CN114422139B (zh) | Api网关请求安全验证方法、装置、电子设备及计算机可读介质 | |
CN107426243A (zh) | 一种网络安全防护方法及装置 | |
Franken et al. | Exposing cookie policy flaws through an extensive evaluation of browsers and their extensions | |
Wedman et al. | An analytical study of web application session management mechanisms and HTTP session hijacking attacks | |
US8261328B2 (en) | Trusted electronic communication through shared vulnerability | |
EP3036674B1 (en) | Proof of possession for web browser cookie based security tokens | |
Lalia et al. | Implementation of web browser extension for mitigating CSRF attack | |
CN105516111A (zh) | 智能设备实时数据交互方法 | |
CN118202350A (zh) | 检测并防止跨站点请求伪造缓解特征的不一致使用 | |
Kumar et al. | Automated session fixation vulnerability detection in web applications using the set-cookie HTTP response header in cookies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |