跨站请求处理方法、装置及电子设备制造方法及图纸

技术编号:24333911 阅读:31 留言:0更新日期:2020-05-29 21:14
本发明专利技术实施例提供一种跨站请求处理方法、装置及电子设备,其中,方法包括:获取浏览器中从业务处理页面发起的跨站请求,所述跨站请求用于向与发起所述跨站请求的地址不同源的目标地址获取业务数据;将所述跨站请求转换为与所述目标地址同源的同源请求,并在所述同源请求中携带用于防止跨站请求伪造的校验令牌;将所述同源请求发送至所述目标地址的服务端,以使所述服务端基于所述校验令牌对所述同源请求进行处理;接收所述服务端反馈的处理请求结果以及新生成的校验令牌,并将所述处理请求结果反馈至所述业务处理页面,将新生成的校验令牌更新替换掉当前使用的校验令牌。本发明专利技术实施例的方案,能够在有效防止CSRF的前提下对跨站请求业务进行处理。

Cross station request processing method, device and electronic equipment

【技术实现步骤摘要】
跨站请求处理方法、装置及电子设备
本申请涉及通信
,尤其涉及一种跨站请求处理方法、装置及电子设备。
技术介绍
跨站请求伪造(Cross-siterequestforgery,CSRF)是一种对网站的恶意利用,其通过伪装来自受信任用户的请求来利用受信任的网站来实现对目标地址的恶意攻击。在主流浏览器的跨域数据访问业务中存在非常多的场景采用JSONP作为数据传输协议。但是,由于请求是跨域的,不能像传统的web应用程序把数据提交到web服务器(使用HTML表单)过程中,在页面上植入CSRFToken,因此对于一些写操作的场景,例如向一个用户转账,直接使用JSONP会有较大的安全风险。此外,JSONP协议只能用GET方式提交,因此参数只能写在URL中,很容易被截获和伪造,并且受到URL长度限制,在一些请求体比较大的场景中也不能使用。如果使用异步JavaScript和XML(AsynchronousJavaScriptAndXML,AJAX)协议传输数据,受其同源性的制约,没有办法发起跨域的请求,例如页面a.taobao.com/a.html中不能通过AJAX请求访问b.taobao.com域名下的服务。
技术实现思路
本专利技术提供了一种跨站请求处理方法、装置及电子设备,能够在有效防止CSRF的前提下对跨站请求业务进行处理。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供了一种跨站请求处理方法,包括:获取浏览器中从业务处理页面发起的跨站请求,所述跨站请求用于向与发起所述跨站请求的地址不同源的目标地址获取业务数据;将所述跨站请求转换为与所述目标地址同源的同源请求,并在所述同源请求中携带用于防止跨站请求伪造的校验令牌;将所述同源请求发送至所述目标地址的服务端,以使所述服务端基于所述校验令牌对所述同源请求进行处理;接收所述服务端反馈的处理请求结果以及新生成的校验令牌,并将所述处理请求结果反馈至所述业务处理页面,将新生成的校验令牌更新替换掉当前使用的校验令牌。第二方面,提供了一种跨站请求处理装置,包括:跨站请求获取模块,用于获取浏览器中从业务处理页面发起的跨站请求,所述跨站请求用于向与发起所述跨站请求的地址不同源的目标地址获取业务数据;请求转换模块,用于将所述跨站请求转换为与所述目标地址同源的同源请求,并在所述同源请求中携带用于防止跨站请求伪造的校验令牌;同源请求发送模块,用于将所述同源请求发送至所述目标地址的服务端,以使所述服务端基于所述校验令牌对所述同源请求进行处理;请求反馈接收模块,用于接收所述服务端反馈的处理请求结果以及新生成的校验令牌,并将所述处理请求结果反馈至所述业务处理页面,将新生成的校验令牌更新替换掉当前使用的校验令牌。第三方面,提供了一种电子设备,包括:存储器,用于存储程序;处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行本专利技术提供的跨站请求处理方法。本专利技术提供了一种跨站请求处理方法、装置及电子设备,在浏览器中的业务处理页面发起跨站请求时,通过对跨站请求进行转换,变为与目标地址同源的同源请求,并且在该同源请求中携带用于防止跨站请求伪造的校验令牌;然后,将同源请求发送至目标地址的服务端,以使服务端基于校验令牌对同源请求进行处理;最后,接收服务端反馈的处理请求结果以及新生成的校验令牌,并将处理请求结果反馈至业务处理页面,将新生成的校验令牌更新替换掉当前使用的校验令牌,从而绕过了跨站请求不能进行CSRF校验的缺陷,以及同源请求不支持跨域请求的限制,在有效防止CSRF的前提下对跨站请求业务进行处理。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例的跨站请求处理逻辑示意图;图2为本专利技术实施例的跨站请求处理系统结构示意图;图3为本专利技术实施例的跨站请求处理方法流程图一;图4为本专利技术实施例的跨站请求处理方法流程图二;图5为本专利技术实施例的跨站请求处理方法流程图三;图6为本专利技术实施例的跨站请求处理装置结构图一;图7为本专利技术实施例的跨站请求处理装置结构图二;图8为本专利技术实施例的电子设备的结构示意。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例改善了现有技术在浏览器中从业务处理页面发起跨站请求时,无法在请求中嵌入CSRFToken,从而导致目标地址服务端不能对跨站请求做CSRF校验,以至于整个处理操作存在较大安全风险的缺陷,其核心思想是,在业务处理页面发起跨站请求时,可先将跨站请求转换为与目标地址同源的同源请求,然后就可以在该同源请求中嵌入CSRFToken,从而使得目标地址服务端在获取到该同源请求后可以对该同源请求进行CSRF校验,而实际上也是对原始的跨站请求进行CSRF校验。这样,服务端可以基于对CSRFToken的校验结果执行对原始的跨站请求执行处理业务逻辑,从而保证整个业务处理逻辑不受CSRF攻击,实现安全操作。基于上述跨站请求处理的方案思想,图1为本专利技术实施例提供的跨站请求处理逻辑示意图。该处理逻辑包括:当判断在浏览器中的某个业务处理页面存在发起跨站请求的需求时,可以预先在该业务处理页面中嵌入一个与跨站请求的目标地址同源的一个桥接页面,比如可以在业务处理页面中通过加载一个iframe标签,然后利用该iframe标签在业务处理页面中加载桥接页面。由于这个桥接页面与目标地址同源,因此可以不受同源策略限制,自由向目标地址发送GET/POST请求。当业务处理页面通过postMessageAPI发起跨站请求时,桥接页面对该请求进行拦截,并将其转换为与目标地址同源的同源请求,比如AJAX请求。同时在该同源请求中嵌入CSRFToken。桥接页面将同源请求发送至服务端网关后,先由服务端对CSRFToken进行CSRF校验,若校验通过,则执行对应的业务逻辑获得执行结果,然后执行下一步;若校验不通过,则生成相应的错误信息,然后执行下一步。服务端生成一个新的CSRFToken,并和上一步中生成结果一起拼装成最终的结果,即返回值,通过服务端网关返回给请求方,即桥接页面。桥接页面接收到返回值之后,首先用返回值中的CSRFToken替换当前缓存的To本文档来自技高网...

【技术保护点】
1.一种跨站请求处理方法,包括:/n获取浏览器中从业务处理页面发起的跨站请求,所述跨站请求用于向与发起所述跨站请求的地址不同源的目标地址获取业务数据;/n将所述跨站请求转换为与所述目标地址同源的同源请求,并在所述同源请求中携带用于防止跨站请求伪造的校验令牌;/n将所述同源请求发送至所述目标地址的服务端,以使所述服务端基于所述校验令牌对所述同源请求进行处理;/n接收所述服务端反馈的处理请求结果以及新生成的校验令牌,并将所述处理请求结果反馈至所述业务处理页面,将新生成的校验令牌更新替换掉当前使用的校验令牌。/n

【技术特征摘要】
1.一种跨站请求处理方法,包括:
获取浏览器中从业务处理页面发起的跨站请求,所述跨站请求用于向与发起所述跨站请求的地址不同源的目标地址获取业务数据;
将所述跨站请求转换为与所述目标地址同源的同源请求,并在所述同源请求中携带用于防止跨站请求伪造的校验令牌;
将所述同源请求发送至所述目标地址的服务端,以使所述服务端基于所述校验令牌对所述同源请求进行处理;
接收所述服务端反馈的处理请求结果以及新生成的校验令牌,并将所述处理请求结果反馈至所述业务处理页面,将新生成的校验令牌更新替换掉当前使用的校验令牌。


2.根据权利要求1所述的方法,其中,所述将所述跨站请求转换为与所述目标地址同源的同源请求,并在所述同源请求中携带用于防止跨站请求伪造的校验令牌以及将所述同源请求发送至所述目标地址的服务端包括:
通过在所述业务处理页面中加载的桥接页面将所述跨站请求转换为与所述目标地址同源的同源请求,所述桥接页面与所述目标地址同源;
通过所述桥接页面将所述同源请求发送至所述目标地址的服务端。


3.根据权利要求2所述的方法,其中,所述获取浏览器中从业务处理页面发起的跨站请求包括:
通过所述桥接页面监听用于传送页面请求的应用程序接口,并获取所述跨站请求。


4.根据权利要求2或3所述的方法,其中,所述方法还包括:
在所述业务处理页面中加载至少一个iframe标签,在所述iframe标签中加载与所述目标地址同源的桥接页面。


5.根据权利要求1所述的方法,其中,所述服务端基于所述校验令牌对所述同源请求进行处理包括:
基于所述校验令牌对所述同源请求进行跨站请求伪造校验;
如果校验通过,则基于所述同源请求执行处理业务逻辑,并将执行结果作为所述处理请求结果;
如果校验未通过,则将校验产生的错误信息作为所述处理请求结果;
生成新的校验令牌。


6.根据权利要求1所述的方法,其中,
所述跨站请求采用包括:JSONP或者跨域资源共享的数据传输协议;

【专利技术属性】
技术研发人员:吕翔韩双虎
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1