一种针对React框架的防止跨站请求伪造CSRF攻击的方法及系统技术方案

技术编号:21228161 阅读:33 留言:0更新日期:2019-05-29 08:39
本发明专利技术公开了一种针对React框架的防止跨站请求伪造CSRF攻击的方法及系统,包括:接收前端发送的请求,根据所述请求随机生成第一token数据;利用加密算法生成密钥对,利用密钥对中的公钥对所述第一token数据进行加密,以生成第一密文数据,并将所述第一token数据和第一密文数据发送至前端作为第二token数据和第二密文数据;接收前端发送的所述第二token数据和第二密文数据作为第三token数据和第三密文数据;对所述第三token数据和第三密文数据进行验证,并根据验证结果进行相应的操作。本发明专利技术采用密码算法对token进行加密,能够防止攻击者利用token伪造发起CSRF攻击,极大提高了程序的安全性;利用React组件化开发的特性,使用token验证机制,前后台协作,给用户无感知的防止CSXF攻击的方式。

A Method and System for Preventing Cross-Station Request Forgery CSRF Attack Based on React Framework

The invention discloses a method and system for preventing cross-station requests from forging CSRF attacks against React framework, which includes: receiving requests sent by the front end, randomly generating the first token data according to the requests; generating key pairs by using encryption algorithm, encrypting the first token data by using the public key of the key pair, so as to generate the first ciphertext data, and first token number. The data and the first ciphertext data are sent to the front end as the second token data and the second ciphertext data; the second token data and the second ciphertext data sent by the front end are received as the third token data and the third ciphertext data; the third token data and the third ciphertext data are verified, and the corresponding operations are carried out according to the verification results. The invention adopts cryptographic algorithm to encrypt token, which can prevent attackers from using token forgery to launch CSRF attacks, greatly improving the security of the program; utilizes the characteristics of component development of React, uses token verification mechanism, cooperates front and back to prevent CSXF attacks senselessly to users.

【技术实现步骤摘要】
一种针对React框架的防止跨站请求伪造CSRF攻击的方法及系统
本专利技术涉及计算机软件
,并且更具体地,涉及一种针对React框架的防止跨站请求伪造(Cross-siterequestforgery,CSRF)攻击的方法及系统。
技术介绍
在科学技术日新月异发展的今天,计算机在人们的日常生活中发挥重要的作用,但是计算机在带来便利的同时也伴随着安全威胁。网络是人与世界交互的媒介,通过网络人们可以在网上购物,娱乐,办公,传递信息等,无形之中,人们在网上产生大量的数据,包括很多重要的数据,如个人隐私、具有商业价值的企业资料、国家机密。在这些重要数据的诱惑下,一些不法分子在网上实施各种网络攻击,以达到盗窃数据或权限的目的。其中,CSXF攻击是网络上最常见的攻击手段之一。CSRF跨站请求伪造,也被称为“OneClickAttack”或者SessionRiding,也被称为XSRF,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF利用的是网站对用户网页浏览器的信任。因为CSRF攻击利用的是冲着浏览器分不清发起请求是不是真正的用户本人。也就是说,简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......,造成的问题包括:个人隐私泄露以及财产安全。传统防止CSRF攻击的方法有三种:一、用户操作限制——验证码机制,添加验证码来识别是不是用户主动去发起这个请求,由于一定强度的验证码机器无法识别,因此危险网站不能伪造一个完整的请求。这种方式简单粗暴,低成本,可靠,能防范99.99%的攻击者。缺点是对用户不友好。二、请求来源限制——验证HTTPReferer字段,在HTTP请求头中有一个字段叫Referer,它记录了请求的来源地址。服务器需要做的是验证这个来源地址是否合法,如果是来自一些不受信任的网站,则拒绝响应。这种方式零成本,简单易实现。缺点是,由于这个方法严重依赖浏览器自身,因此安全性全看浏览器;兼容性不好,每个浏览器对于Referer的具体实现可能有差别;并不一定可靠,在一些古老的垃圾浏览器中,Referer可以被篡改;对用户不友好,Referer值会记录下用户的访问来源,有些用户认为这样会侵犯到他们自己的隐私权。因此有些用户可能会开启浏览器防止跟踪功能,不提供Referer,从而导致正常用户请求被拒绝。三、额外验证机制——token的使用,服务器验证前台传过来的token,从而验证请求的有效性和安全性,这种方式非常容易实现,对用户来说十分友好后。缺点是后台无法充分验证token的安全性,容易被攻击者伪造。
技术实现思路
本专利技术提出一种针对React框架的防止跨站请求伪造CSRF攻击的方法及系统,以解决如何防止CSRF攻击的问题。为了解决上述问题,根据本专利技术的一个方面,提供了一种针对React框架的防止跨站请求伪造CSRF攻击的方法,其特征在于,所述方法包括:接收前端发送的请求,根据所述请求随机生成第一token数据;利用加密算法生成密钥对,利用所述密钥对中的公钥对所述第一token数据进行加密,以生成第一密文数据,并将所述第一token数据和第一密文数据发送至前端作为第二token数据和第二密文数据;接收前端发送的所述第二token数据和第二密文数据作为第三token数据和第三密文数据;对所述第三token数据和第三密文数据进行验证,并根据验证结果进行相应的操作。优选地,其中所述加密算法为非对称加密算法。优选地,其中所述对所述第三token数据和第三密文数据进行验证,包括:对所述第三token数据和第三密文数据进行正向散列验证;当用户发送请求时,利用所述密钥对中的私钥对所述第一密文数据进行解密,以获取解密后的token数据,并利用所述解密后的token数据和第一token数据进行验证。优选地,其中所述对所述第三token数据和第三密文数据进行正向散列验证,包括:利用加密算法对所述第三token数据进行加密,以生成第四密文数据,并将所述第四密文数据和第一密文数据进行比较,若一致,则验证结果指示请求正常,反之,则验证结果指示请求异常;优选地,其中所述利用所述解密后的token数据和第一token数据进行验证,包括:将所述解密后的token数据和第一token数据进行比较,若一致,则验证结果指示请求正常;反之,则验证结果指示请求异常。优选地,其中所述根据验证结果进行相应的操作,包括:若所述验证结果指示请求正常,则正常返回输出数据;若所述验证结果指示请求异常,则表明受到CSRF攻击,抛出CSRF攻击异常数据。优选地,其中所述方法还包括:利用React组件化开发的特性,对后台返回的密文数据统一封装在request组件中,以使得前端开发者无需在每个业务层考虑token的接收和发送问题。根据本本专利技术的另一个方面,提供了一种针对React框架的防止跨站请求伪造CSRF攻击的系统,其特征在于,所述系统包括:第一token数据生成单元,用于接收前端发送的请求,根据所述请求随机生成第一token数据;第一密文数据生成单元,用于利用加密算法生成密钥对,利用所述密钥对中的公钥对所述第一token数据进行加密,以生成第一密文数据,并将所述第一token数据和第一密文数据发送至前端作为第二token数据和第二密文数据;数据接收单元,用于接收前端发送的所述第二token数据和第二密文数据作为第三token数据和第三密文数据;数据处理单元,用于对所述第三token数据和第三密文数据进行验证,并根据验证结果进行相应的操作。优选地,其中所述加密算法为非对称加密算法。优选地,其中所述数据处理单元,对所述第三token数据和第三密文数据进行验证,包括:正向散列验证模块,用于对所述第三token数据和第三密文数据进行正向散列验证;token数据验证模块,用于当用户发送请求时,利用所述密钥对中的私钥对所述第一密文数据进行解密,以获取解密后的token数据,并利用所述解密后的token数据和第一token数据进行验证。优选地,其中所述正向散列验证模块,对所述第三token数据和第三密文数据进行正向散列验证,包括:利用加密算法对所述第三token数据进行加密,以生成第四密文数据,并将所述第四密文数据和第一密文数据进行比较,若一致,则验证结果指示请求正常,反之,则验证结果指示请求异常;优选地,其中所述token数据验证模块,利用所述解密后的token数据和第一token数据进行验证,包括:将所述解密后的token数据和第一token数据进行比较,若一致,则验证结果指示请求正常;反之,则验证结果指示请求异常。优选地,其中所述数据处理单元,根据验证结果进行相应的操作,包括:若所述验证结果指示请求正常,则正常返回输出数据;若所述验证结果指示请求异常,则表明受到CSRF攻击,抛出CSRF攻击异常数据。优选地,其中所述系统还包括:封装单元,用于利用React组件化开发的特性,对后台返回的密文本文档来自技高网
...

【技术保护点】
1.一种针对React框架的防止跨站请求伪造CSRF攻击的方法,其特征在于,所述方法包括:接收前端发送的请求,根据所述请求随机生成第一token数据;利用加密算法生成密钥对,利用所述密钥对中的公钥对所述第一token数据进行加密,以生成第一密文数据,并将所述第一token数据和第一密文数据发送至前端作为第二token数据和第二密文数据;接收前端发送的所述第二token数据和第二密文数据作为第三token数据和第三密文数据;对所述第三token数据和第三密文数据进行验证,并根据验证结果进行相应的操作。

【技术特征摘要】
1.一种针对React框架的防止跨站请求伪造CSRF攻击的方法,其特征在于,所述方法包括:接收前端发送的请求,根据所述请求随机生成第一token数据;利用加密算法生成密钥对,利用所述密钥对中的公钥对所述第一token数据进行加密,以生成第一密文数据,并将所述第一token数据和第一密文数据发送至前端作为第二token数据和第二密文数据;接收前端发送的所述第二token数据和第二密文数据作为第三token数据和第三密文数据;对所述第三token数据和第三密文数据进行验证,并根据验证结果进行相应的操作。2.根据权利要求1所述的方法,其特征在于,所述加密算法为非对称加密算法。3.根据权利要求1所述的方法,其特征在于,所述对所述第三token数据和第三密文数据进行验证,包括:对所述第三token数据和第三密文数据进行正向散列验证;当用户发送请求时,利用所述密钥对中的私钥对所述第一密文数据进行解密,以获取解密后的token数据,并利用所述解密后的token数据和第一token数据进行验证。4.根据权利要求3所述的方法,其特征在于,所述对所述第三token数据和第三密文数据进行正向散列验证,包括:利用加密算法对所述第三token数据进行加密,以生成第四密文数据,并将所述第四密文数据和第一密文数据进行比较,若一致,则验证结果指示请求正常,反之,则验证结果指示请求异常。5.根据权利要求1所述的方法,其特征在于,所述利用所述解密后的token数据和第一token数据进行验证,包括:将所述解密后的token数据和第一token数据进行比较,若一致,则验证结果指示请求正常;反之,则验证结果指示请求异常。6.根据权利要求1所述的方法,其特征在于,所述根据验证结果进行相应的操作,包括:若所述验证结果指示请求正常,则正常返回输出数据;若所述验证结果指示请求异常,则表明受到CSRF攻击,抛出CSRF攻击异常数据。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:利用React组件化开发的特性,对后台返回的密文数据统一封装在request组件中,以使得前端开发者无需在每个业务层考虑token的接收和发送问题。8.一种针对React框架的防止跨站请求伪造CSRF攻击的系统,其特征在于,所述系统包括:第一token数据生成单元,用...

【专利技术属性】
技术研发人员:牟森冯玉珠梁宵耿方
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1