Cross-domain access method and device, medium and program product

By randomly inserting and encrypting the processing of cross-domain data on the server, the problem of complex and insufficient security of the browser's cross-domain access implementation process is solved, the security and convenience of data are improved, and the security risks of the reverse proxy server are avoided.

CN119155114AInactive Publication Date: 2024-12-17INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202411623148.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-14
Publication Date
2024-12-17
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The cross-domain access implementation process of existing browsers is complex and insufficient security, especially the data returned by the server is easily hijacked, and the additional construction of a reverse proxy server poses security risks.

Method used

After receiving the browser's cross-domain access request on the server, the target data is randomly determined, the target data is inserted, the cross-domain data is inserted into the data, and then the encryption process is carried out to the browser, and the target data is used to hide the cross-domain data to achieve Secondary security protection of data.

Benefits of technology

It improves the data security and convenience of the browser's cross-domain access, avoids the risk of building a reverse proxy server, and realizes random location and secondary security protection of data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119155114A_ABST
    Figure CN119155114A_ABST
Patent Text Reader

Abstract

The invention discloses a cross-domain access method and device, a medium and a program product in the technical field of computers. In the application, the cross-domain data is randomly filled in a section of target data, so that the target data is utilized to hide the cross-domain data, and the security of the cross-domain data can be improved; and the target data filled with the cross-domain data is returned to the browser as response data in a ciphertext form, so that the data security is improved again. According to the scheme, a reverse proxy server does not need to be additionally set up, secondary safety protection of the cross-domain data in the implementation process is achieved, the position where the data is located is random, and therefore the data safety and convenience of browser cross-domain access can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a cross-domain access method, device, medium and program product. Background Art

[0002] Currently, in order to achieve cross-domain access by browser, you can use <script>标签的跨域特性,通过动态创建<script>标签,请求一个带有回调函数的接口,使得服务端返回的数据作为回调函数的参数传入,从而实现跨域请求;此过程中,服务端返回的数据携带于URL中,容易被劫持。当然,也可以在服务端设置一个代理服务器,将浏览器的请求发送到代理服务器,并将代理服务器的响应返回给浏览器,从而实现跨域请求;此方案实现较为复杂,额外搭建的反向代理服务器存在安全隐患。可见,当前的浏览器跨域访问的实现过程较复杂,安全性也有待提升。

[0003] 因此,如何提高浏览器跨域访问的数据安全性和便捷性,是本领域技术人员需要解决的问题。发明内容

[0004] 有鉴于此,本申请的目的在于提供一种跨域访问方法、设备、介质及程序产品,以提高浏览器跨域访问的数据安全性和便捷性。其具体方案如下:

[0005] 第一方面,本申请提供了一种跨域访问方法,应用于服务端,包括:

[0006] 若接收到浏览器发送的跨域访问请求,则获取目标数据,并在所述目标数据中随机确定插入位置;

[0007] 确定所述跨域访问请求要访问的跨域数据,并在所述跨域数据的首部和尾部添加标记信息,得到待插入数据;

[0008] 将所述待插入数据插入所述目标数据中的所述插入位置,得到响应数据;

[0009] 对所述响应数据进行加密后,将加密得到的密文返回至所述浏览器。

[0010] 可选地,所述获取目标数据,包括:

[0011] 利用第一随机算法生成目标长度;

[0012] 在预设的数据库中随机选择一个所述目标长度的数据,作为所述目标数据。

[0013] 可选地,所述目标长度不超过预设长度范围。

[0014] 可选地,利用第一随机算法生成不超过预设长度范围的目标长度,包括:

[0015] 确定所述浏览器支持的响应报文的最大有效负载;

[0016] 基于所述最大有效负载确定所述预设长度范围;

[0017] 将所述预设长度范围输入所述第一随机算法,以使所述第一随机算法在所述预设长度范围的约束下,输出不超过所述预设长度范围的目标长度。

[0018] 可选地,在所述目标数据中随机确定插入位置,包括:

[0019] 利用第二随机算法生成待确定位置;

[0020] 将所述待确定位置与前次的插入位置进行对比;

[0021] 若所述待确定位置与前次的插入位置不同,则将所述待确定位置作为所述插入位置。

[0022] 可选地,若所述待确定位置与前次的插入位置相同,则执行利用第二随机算法生成待确定位置;将所述待确定位置与前次的插入位置进行对比的步骤。

[0023] 可选地,确定所述跨域访问请求要访问的跨域数据,并在所述跨域数据的首部和尾部添加标记信息,包括:

[0024] 根据所述跨域访问请求查询得到所述跨域数据;

[0025] 按照与所述浏览器协商的规则在所述跨域数据的首部和尾部添加所述标记信息。

[0026] 可选地,对所述响应数据进行加密,包括:

[0027] 随机选择一个与前次的加密算法不同的目标加密算法;

[0028] 利用所述目标加密算法对所述响应数据进行加密。

[0029] 可选地,将加密得到的密文返回至所述浏览器,包括:

[0030] 封装加密得到的密文,并添加跨源资源共享机制的响应头,得到响应报文;

[0031] 将所述响应报文返回至所述浏览器。

[0032] 第二方面,本申请提供了一种跨域访问方法,应用于浏览器,包括:

[0033] 发送跨域访问请求至服务端,以使所述服务端在接收到所述跨域访问请求后,获取目标数据,并在所述目标数据中随机确定插入位置;确定所述跨域访问请求要访问的跨域数据,并在所述跨域数据的首部和尾部添加标记信息,得到待插入数据;将所述待插入数据插入所述目标数据中的所述插入位置,得到响应数据;对所述响应数据进行加密后,将加密得到的密文返回至所述浏览器;

[0034] 接收所述服务端返回的密文。

[0035] 可选地,发送跨域访问请求至服务端之前,还包括:

[0036] 创建目标元素对象;

[0037] 设置所述目标元素对象的加载属性为跨源资源共享机制;

[0038] 设置所述目标元素对象的请求属性为跨域;

[0039] 设置所述目标元素对象的类型属性为不显示;

[0040] 基于所述跨域数据的页面描述信息、以及所述目标元素对象的加载属性、请求属性和类型属性,生成所述跨域访问请求。

[0041] 可选地,接收所述服务端返回的密文,包括:

[0042] 接收所述服务端返回的包括密文的响应报文;

[0043] 从所述响应报文中解析得到跨源资源共享机制的响应头和密文;

[0044] 根据所述响应头处理密文。

[0045] 可选地,根据所述响应头处理密文,包括:

[0046] 加载密文;

[0047] 将密文转化为二进制数据;

[0048] 解密所述二进制数据,得到所述响应数据;

[0049] 在所述响应数据中检测所述标记信息,并将位于所述标记信息之间的数据作为所述跨域数据;

[0050] 显示所述跨域数据。

[0051] 第三方面,本申请提供了一种跨域访问装置,应用于服务端,包括:

[0052] 获取模块,用于若接收到浏览器发送的跨域访问请求,则获取目标数据,并在所述目标数据中随机确定插入位置;

[0053] 确定模块,用于确定所述跨域访问请求要访问的跨域数据,并在所述跨域数据的首部和尾部添加标记信息,得到待插入数据;

[0054] 插入模块,用于将所述待插入数据插入所述目标数据中的所述插入位置,得到响应数据;

[0055] 返回模块,用于对所述响应数据进行加密后,将加密得到的密文返回至所述浏览器。

[0056] 可选地,所述获取模块具体用于:

[0057] 利用第一随机算法生成目标长度;

[0058] 在预设的数据库中随机选择一个所述目标长度的数据,作为所述目标数据。

[0059] 可选地,所述目标长度不超过预设长度范围。

[0060] 可选地,获取模块具体用于:

[0061] 利用第二随机算法生成待确定位置;

[0062] 将所述待确定位置与前次的插入位置进行对比;

[0063] 若所述待确定位置与前次的插入位置不同,则将所述待确定位置作为所述插入位置。

[0064] 可选地,获取模块具体用于:

[0065] 若所述待确定位置与前次的插入位置相同,则执行利用第二随机算法生成待确定位置;将所述待确定位置与前次的插入位置进行对比的步骤。

[0066] 可选地,确定模块具体用于:

[0067] 根据所述跨域访问请求查询得到所述跨域数据;

[0068] 按照与所述浏览器协商的规则在所述跨域数据的首部和尾部添加所述标记信息。

[0069] 可选地,返回模块具体用于:

[0070] 随机选择一个与前次的加密算法不同的目标加密算法;

[0071] 利用所述目标加密算法对所述响应数据进行加密。

[0072] 可选地,返回模块具体用于:

[0073] 封装加密得到的密文,并添加跨源资源共享机制的响应头,得到响应报文;

[0074] 将所述响应报文返回至所述浏览器。

[0075] 第四方面,本申请提供了一种跨域访问装置,应用于浏览器,包括:

[0076] 发送模块,用于发送跨域访问请求至服务端,以使所述服务端在接收到所述跨域访问请求后,获取目标数据,并在所述目标数据中随机确定插入位置;确定所述跨域访问请求要访问的跨域数据,并在所述跨域数据的首部和尾部添加标记信息,得到待插入数据;将所述待插入数据插入所述目标数据中的所述插入位置,得到响应数据;对所述响应数据进行加密后,将加密得到的密文返回至所述浏览器;

[0077] 接收模块,用于接收所述服务端返回的密文。

[0078] 可选地,还包括:

[0079] 创建模块,用于创建目标元素对象;设置所述目标元素对象的加载属性为跨源资源共享机制;设置所述目标元素对象的请求属性为跨域;设置所述目标元素对象的类型属性为不显示;基于所述跨域数据的页面描述信息、以及所述目标元素对象的加载属性、请求属性和类型属性,生成所述跨域访问请求。

[0080] 可选地,接收模块具体用于:

[0081] 接收所述服务端返回的包括密文的响应报文;

[0082] 从所述响应报文中解析得到跨源资源共享机制的响应头和密文;

[0083] 根据所述响应头处理密文。

[0084] 可选地,接收模块具体用于:

[0085] 加载密文;

[0086] 将密文转化为二进制数据;

[0087] 解密所述二进制数据,得到所述响应数据;

[0088] 在所述响应数据中检测所述标记信息,并将位于所述标记信息之间的数据作为所述跨域数据;

[0089] 显示所述跨域数据。

[0090] 第五方面,本申请提供了一种电子设备,包括:

[0091] 存储器,用于存储计算机程序;

[0092] 处理器,用于执行所述计算机程序,以实现前述公开的跨域访问方法。

[0093] 第六方面,本申请提供了一种非易失性存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的跨域访问方法。

[0094] 第七方面,本申请提供了一种计算机程序产品,包括计算机程序 / 指令,该计算机程序 / 指令被处理器执行时实现前述公开的跨域访问方法的步骤。

[0095] 通过以上方案可知,本申请提供了一种跨域访问方法,应用于服务端,包括:若接收到浏览器发送的跨域访问请求,则获取目标数据,并在所述目标数据中随机确定插入位置;确定所述跨域访问请求要访问的跨域数据,并在所述跨域数据的首部和尾部添加标记信息,得到待插入数据;将所述待插入数据插入所述目标数据中的所述插入位置,得到响应数据;对所述响应数据进行加密后,将加密得到的密文返回至所述浏览器。

[0096] 可见,本申请的有益效果为:将跨域数据随机填充在一段目标数据中,从而利用目标数据来隐藏跨域数据,能够提升跨域数据的安全性;并且填充有跨域数据的目标数据以密文形式作为响应数据返回给浏览器,从而再次提升了数据安全性。该方案无需额外搭建反向代理服务器,实现过程中跨域数据有二次安全保护,并且数据所在位置随机,因此能够提高浏览器跨域访问的数据安全性和便捷性。

[0097] 相应地,本申请提供的一种跨域访问装置、设备、介质及程序产品,也同样具有上述技术效果。附图说明

[0098] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

[0099] 图1为本申请公开的第一种跨域访问方法流程图;

[0100] 图2为本申请公开的第二种跨域访问方法流程图;

[0101] 图3为本申请公开的第一种跨域访问装置示意图;

[0102] 图4为本申请公开的第二种跨域访问装置示意图;

[0103] 图5为本申请公开的一种电子设备示意图;

[0104] 图6为本申请提供的一种服务器结构图;

[0105] 图7为本申请提供的一种终端结构图。具体实施方式

[0106] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。

[0107] 目前,为实现浏览器跨域访问,可以利用<script>标签的跨域特性,通过动态创建<script>标签,请求一个带有回调函数的接口,使得服务端返回的数据作为回调函数的参数传入,从而实现跨域请求;此过程中,服务端返回的数据携带于URL中,容易被劫持。当然,也可以在服务端设置一个代理服务器,将浏览器的请求发送到代理服务器,并将代理服务器的响应返回给浏览器,从而实现跨域请求;此方案实现较为复杂,额外搭建的反向代理服务器存在安全隐患。可见,当前的浏览器跨域访问的实现过程较复杂,安全性也有待提升。为此,本申请提供了一种跨域访问方案,能够提高浏览器跨域访问的数据安全性和便捷性。

[0108] 参见图1所示,本申请实施例公开了第一种跨域访问方法,应用于服务端,包括:

[0109] S101、若接收到浏览器发送的跨域访问请求,则获取目标数据,并在目标数据中随机确定插入位置。

[0110] 本实施例中,为保证目标数据的随机性,预设了一个数据库,该数据库中提前存储有不超过预设长度范围的多个音频数据。因此在一种实施方式中,获取目标数据,包括:利用第一随机算法生成目标长度;在预设的数据库中随机选择一个目标长度的数据,作为目标数据。其中,目标长度不超过预设长度范围;预设长度范围如:1秒~10秒。具体的,预设长度范围可基于响应报文的最大有效负载进行设置。第一随机算法可选用适用于本实施例的随机算法,如:拉斯维加斯算法、蒙特卡洛算法和舍伍德算法等。

[0111] 在一种示例中,所述获取目标数据,包括:利用第一随机算法生成不超过预设长度范围的目标长度;在预设的数据库中随机选择一个所述目标长度的数据,作为所述目标数据。

[0112] 其中,利用第一随机算法生成不超过预设长度范围的目标长度,包括:确定所述浏览器支持的响应报文的最大有效负载;基于所述最大有效负载确定所述预设长度范围;将所述预设长度范围输入所述第一随机算法,以使所述第一随机算法在所述预设长度范围的约束下,输出不超过所述预设长度范围的目标长度。

[0113] 需要说明的是,随机选择目标数据,可进一步提升跨域数据的隐秘性和安全性;并且,目标数据的目标长度不超过预设长度范围,可保证响应数据的大小不超限。

[0114] 在一种实施方式中,在目标数据中随机确定插入位置,包括:利用第二随机算法生成待确定位置;将待确定位置与前次的插入位置进行对比;若待确定位置与前次的插入位置不同,则将待确定位置作为插入位置。若待确定位置与前次的插入位置相同,则执行利用第二随机算法生成待确定位置;将待确定位置与前次的插入位置进行对比的步骤,以使相邻两次选择的插入位置不同。由此方式可实现:相邻两次选择的插入位置不同,插入位置的随机性也可以进一步提升跨域数据的隐秘性和安全性。第二随机算法可选用适用于本实施例的随机算法,在此不再赘述。

[0115] S102、确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据。

[0116] 在一种实施方式中,确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,包括:根据跨域访问请求查询得到跨域数据;按照与浏览器协商的规则在跨域数据的首部和尾部添加标记信息。其中,标记信息可以是特殊字符,如:跨域数据用A表示,那么待插入数据可以为:QAQ,其中的Q即为标记信息;同理,待插入数据也可以为:&A&,其中的&即为标记信息。

[0117] S103、将待插入数据插入目标数据中的插入位置,得到响应数据。

[0118] 在一种示例中,将待插入数据插入目标数据中的插入位置,包括:将目标数据转化为二进制数据,将待插入数据插入二进制数据中的插入位置。例如:转化目标数据得到的二进制数据为1010100000011111111111,而待插入数据为:&A&;本次确定的插入位置为:二进制数据的最低位之前,最低位的相邻位之后;那么响应数据为:101010000001111111111&A&1。当然,实际实现过程中,待插入数据&A&也需转化为二进制数据后再进行插入,此示例为便于解释插入动作,未对待插入数据进行二进制转化。

[0119] S104、对响应数据进行加密后,将加密得到的密文返回至浏览器。

[0120] 在一种实施方式中,对响应数据进行加密,包括:随机选择一个与前次的加密算法不同的目标加密算法;利用目标加密算法对响应数据进行加密。本示例中,相邻两次选择的加密算法不同,加密算法的随机性也可以进一步提升跨域数据的隐秘性和安全性。

[0121] 在一种实施方式中,将加密得到的密文返回至浏览器,包括:封装加密得到的密文,并添加跨源资源共享机制的响应头,得到响应报文;将响应报文返回至浏览器。其中,CORS(Cross-Origin Resource Sharing,跨源资源共享机制)是一种基于HTTP头部的安全机制,它允许Web服务器通过跨源HTTP请求头部告诉浏览器,让它允许在Web应用程序中执行跨源的HTTP请求。CORS能够解决同源策略的限制,使得Web应用能够安全地进行跨域数据传输。其中,浏览器跨域指:一个源试图访问或请求另一个不同源的资源时,由于浏览器的同源策略而受到限制的行为。同源策略规定了来自同一源(协议、域名、端口号均相同)的文档或者脚本可以与彼此交互,如果这三个组成部分中有任何一个不匹配,就认为这两个URL属于不同的源。

[0122] 参照本实施例,浏览器发送跨域访问请求至服务端;服务端在接收到跨域访问请求后,获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器;之后浏览器接收服务端返回的密文。

[0123] 其中,浏览器发送跨域访问请求至服务端之前,还包括:浏览器创建目标元素对象;设置目标元素对象的加载属性为跨源资源共享机制;设置目标元素对象的请求属性为跨域;设置目标元素对象的类型属性为不显示;基于跨域数据的页面描述信息、以及目标元素对象的加载属性、请求属性和类型属性,生成跨域访问请求。若目标数据为音频,那么浏览器使用document.createElement(‘audio’)方法先创建一个音频元素对象audioObj;然后设置audioObj对象的crossOrigin属性为Anonymous,以实现:加载跨源资源时使用CORS(跨源资源共享)机制,这样才能允许浏览器进行跨域请求;之后设置audioObj对象的src属性值为跨域请求的url;进而设置audioObj对象的style属性为display:none,以实现:音频加载时默认不显示,防止音频加载在页面中干扰页面元素的正常展示;发送跨域请求时,浏览器便可使用document.body.appenChild方法将audioObj对象加载到页面中;当audioObj对象加载到页面中时,会自动触发src属性的请求去获取音频数据,从而获取到包含跨域数据的音频二进制数据。

[0124] 在一种实施方式中,浏览器接收服务端返回的密文,包括:接收服务端返回的包括密文的响应报文;从响应报文中解析得到跨源资源共享机制的响应头和密文;根据响应头处理密文。其中,根据响应头处理密文,包括:加载密文;将密文转化为二进制数据;解密二进制数据,得到响应数据;在响应数据中检测标记信息,并将位于标记信息之间的数据作为跨域数据;显示跨域数据。

[0125] 可见,本实施例中,将跨域数据随机填充在一段目标数据中,从而利用目标数据来隐藏跨域数据,能够提升跨域数据的安全性;并且填充有跨域数据的目标数据以密文形式作为响应数据返回给浏览器,从而再次提升了数据安全性。该方案无需额外搭建反向代理服务器,实现过程中跨域数据有二次安全保护,并且数据所在位置随机,因此能够提高浏览器跨域访问的数据安全性和便捷性。

[0126] 下面对本申请实施例提供的第二种跨域访问方法进行介绍,下文描述的一种跨域访问方法与本文描述的其他实施例可以相互参照。

[0127] 参见图2所示,本申请实施例公开了第二种跨域访问方法,应用于浏览器,包括:

[0128] S201、发送跨域访问请求至服务端,以使服务端在接收到跨域访问请求后,获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器。

[0129] S202、接收服务端返回的密文。

[0130] 其中,浏览器发送跨域访问请求至服务端之前,还包括:浏览器创建目标元素对象;设置目标元素对象的加载属性为跨源资源共享机制;设置目标元素对象的请求属性为跨域;设置目标元素对象的类型属性为不显示;基于跨域数据的页面描述信息、以及目标元素对象的加载属性、请求属性和类型属性,生成跨域访问请求。具体的,浏览器使用document.createElement(‘audio’)方法先创建一个目标元素对象audioObj;然后设置audioObj对象的crossOrigin属性为Anonymous,以实现:加载跨源资源时使用CORS(跨源资源共享)机制,这样才能允许浏览器进行跨域请求;之后设置audioObj对象的src属性值为跨域请求的url;进而设置audioObj对象的style属性为display:none,以实现:音频加载时默认不显示,防止音频加载在页面中干扰页面元素的正常展示;发送跨域请求时,浏览器便可使用document.body.appenChild方法将audioObj对象加载到页面中;当audioObj对象加载到页面中时,会自动触发src属性的请求去获取音频数据,从而获取到包含跨域数据的音频二进制数据。

[0131] 在一种实施方式中,浏览器接收服务端返回的密文,包括:接收服务端返回的包括密文的响应报文;从响应报文中解析得到跨源资源共享机制的响应头和密文;根据响应头处理密文。其中,根据响应头处理密文,包括:加载密文;将密文转化为二进制数据;解密二进制数据,得到响应数据;在响应数据中检测标记信息,并将位于标记信息之间的数据作为跨域数据;显示跨域数据。

[0132] 其中,关于本实施例中各个步骤更加具体的工作过程可以参考其他实施例中公开的相应内容,在此不再进行赘述。

[0133] 可见,本实施例中,服务端能够利用目标数据来隐藏跨域数据;并且填充有跨域数据的目标数据以密文形式作为响应数据返回给浏览器,浏览器可按照与服务端的约定解析响应数据,从而获得跨域数据。该方案无需额外搭建反向代理服务器,实现过程中跨域数据有二次安全保护,并且数据所在位置随机,因此能够提高浏览器跨域访问的数据安全性和便捷性。

[0134] 在一种示例中,服务端的跨域访问流程可以包括:

[0135] (1)提前准备一段几B大小的音频作为目标数据,即很小的音频,音频过大会导致获取音频的时间增加,并且页面加载渲染音频的速度降低。获取音频的二进制数据,将跨域数据随机的插入到音频的二进制数据中,并且使用特定的特征值标识跨域数据的开头和结尾,以便于从音频中截取跨域数据,还可以防止跨域数据的泄露,进一步保护跨域数据的安全性。

[0136] (2)将步骤(1)中的包含跨域数据的音频的二进制数据进行加密处理。加密算法是可逆向加密算法,即可以解密的算法。本例中使用base64进行加密处理,经过此处理后的数据将更加安全,即使被人恶意截获后也难以获取真实的跨域数据。

[0137] (3)为了使浏览器端发送的跨域请求成功响应,服务端需要在响应中设置CORS的响应头,如:Access-Control-Allow-Origin;并且这个响应头允许跨域请求的url。如果服务器端没有正确配置CORS,那么即使浏览器端设置了crossOrigin属性,请求也会被拒绝。

[0138] 在一种示例中,浏览器端的跨域访问流程可以包括:

[0139] (1)使用document.createElement(‘audio’)方法先创建一个目标元素对象audioObj;然后设置audioObj对象的crossOrigin属性为Anonymous,以实现:加载跨源资源时使用CORS(跨源资源共享)机制,这样才能允许浏览器进行跨域请求。

[0140] (2)设置audioObj对象的src属性值为跨域请求的url。

[0141] (3)设置audioObj对象的style属性为display:none,以实现:音频加载时默认不显示,防止音频加载在页面中干扰页面元素的正常展示。

[0142] (4)发送跨域请求时,浏览器使用document.body.appenChild方法将audioObj对象加载到页面中;当audioObj对象加载到页面中时,会自动触发src属性的请求去获取音频数据,从而获取到包含跨域数据的音频二进制数据。

[0143] 其中,当音频数据获取成功并渲染到页面时,会触发音频的onLoad方法,即音频加载完成时的回调方法,在onLoad方法中实现MediaRecorder API方法获取音频数据并将其转化为二进制数据,至此获取到音频的加密后的二进制数据。使用加密算法的逆向解密算法对获取的音频二进制加密数据进行解密,本例使用base64解密算法进行解密。解密后,即获取到跨域音频的二进制明文数据。然后,利用跨域数据的开头以及结尾的特征值对跨域数据的二进制明文数据进行字符串截取,即可获取到最终的跨域数据。

[0144] 可见,本实施例将跨域数据随机的放入到音频的二进制数据中,并对全部的二进制数据进行加密处理,保障了跨域数据的安全性。其中,使浏览器中的目标元素<audio / >支持发送跨域请求,服务器侧将待返回的跨域数据随机的放到音频的二进制数据中,然后使用可逆向加密算法对音频的二进制数据进行加密,并以此密文响应浏览器;浏览器接收此密文并解密,从解密后的数据中截取获得跨域数据。其中,所选音频数据量较小且加载较快,能够提升跨域传递数据的效率。利用浏览器页面中的目标元素本身支持跨域加载音频的特性去实现跨域请求的发送,提升了跨域请求的浏览器兼容性并减少了跨域请求的复杂度。

[0145] 下面对本申请实施例提供的第一种跨域访问装置进行介绍,下文描述的一种跨域访问装置与本文描述的其他实施例可以相互参照。

[0146] 参见图3所示,本申请实施例公开了一种跨域访问装置,应用于服务端,包括:

[0147] 获取模块301,用于若接收到浏览器发送的跨域访问请求,则获取目标数据,并在目标数据中随机确定插入位置;

[0148] 确定模块302,用于确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;

[0149] 插入模块303,用于将待插入数据插入目标数据中的插入位置,得到响应数据;

[0150] 返回模块304,用于对响应数据进行加密后,将加密得到的密文返回至浏览器。

[0151] 在一种实施方式中,获取模块具体用于:

[0152] 利用第一随机算法生成目标长度;

[0153] 在预设的数据库中随机选择一个目标长度的数据,作为目标数据。

[0154] 在一种实施方式中,目标长度不超过预设长度范围。

[0155] 在一种实施方式中,获取模块具体用于:

[0156] 利用第二随机算法生成待确定位置;

[0157] 将待确定位置与前次的插入位置进行对比;

[0158] 若待确定位置与前次的插入位置不同,则将待确定位置作为插入位置。

[0159] 在一种实施方式中,获取模块具体用于:

[0160] 若待确定位置与前次的插入位置相同,则执行利用第二随机算法生成待确定位置;将待确定位置与前次的插入位置进行对比的步骤。

[0161] 在一种实施方式中,确定模块具体用于:

[0162] 根据跨域访问请求查询得到跨域数据;

[0163] 按照与浏览器协商的规则在跨域数据的首部和尾部添加标记信息。

[0164] 在一种实施方式中,返回模块具体用于:

[0165] 随机选择一个与前次的加密算法不同的目标加密算法;

[0166] 利用目标加密算法对响应数据进行加密。

[0167] 在一种实施方式中,返回模块具体用于:

[0168] 封装加密得到的密文,并添加跨源资源共享机制的响应头,得到响应报文;

[0169] 将响应报文返回至浏览器。

[0170] 其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考其他实施例中公开的相应内容,在此不再进行赘述。

[0171] 可见,本实施例提供了一种跨域访问装置,能够提高浏览器跨域访问的数据安全性和便捷性。

[0172] 下面对本申请实施例提供的第二种跨域访问装置进行介绍,下文描述的一种跨域访问装置与本文描述的其他实施例可以相互参照。

[0173] 参见图4所示,本申请实施例公开了一种跨域访问装置,应用于浏览器,包括:

[0174] 发送模块401,用于发送跨域访问请求至服务端,以使服务端在接收到跨域访问请求后,获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器;

[0175] 接收模块402,用于接收服务端返回的密文。

[0176] 在一种实施方式中,还包括:

[0177] 创建模块,用于创建目标元素对象;设置目标元素对象的加载属性为跨源资源共享机制;设置目标元素对象的请求属性为跨域;设置目标元素对象的类型属性为不显示;基于跨域数据的页面描述信息、以及目标元素对象的加载属性、请求属性和类型属性,生成跨域访问请求。

[0178] 在一种实施方式中,接收模块具体用于:

[0179] 接收服务端返回的包括密文的响应报文;

[0180] 从响应报文中解析得到跨源资源共享机制的响应头和密文;

[0181] 根据响应头处理密文。

[0182] 在一种实施方式中,接收模块具体用于:

[0183] 加载密文;

[0184] 将密文转化为二进制数据;

[0185] 解密二进制数据,得到响应数据;

[0186] 在响应数据中检测标记信息,并将位于标记信息之间的数据作为跨域数据;

[0187] 显示跨域数据。

[0188] 其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考其他实施例中公开的相应内容,在此不再进行赘述。

[0189] 可见,本实施例提供了一种跨域访问装置,能够提高浏览器跨域访问的数据安全性和便捷性。

[0190] 下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。

[0191] 参见图5所示,本申请实施例公开了一种电子设备,包括:

[0192] 存储器501,用于保存计算机程序;

[0193] 处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。

[0194] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若接收到浏览器发送的跨域访问请求,则获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器。

[0195] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:利用第一随机算法生成目标长度;在预设的数据库中随机选择一个目标长度的数据,作为目标数据。

[0196] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:利用第二随机算法生成待确定位置;将待确定位置与前次的插入位置进行对比;若待确定位置与前次的插入位置不同,则将待确定位置作为插入位置。

[0197] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:根据跨域访问请求查询得到跨域数据;按照与浏览器协商的规则在跨域数据的首部和尾部添加标记信息。

[0198] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:随机选择一个与前次的加密算法不同的目标加密算法;利用目标加密算法对响应数据进行加密。

[0199] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:封装加密得到的密文,并添加跨源资源共享机制的响应头,得到响应报文;将响应报文返回至浏览器。

[0200] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:发送跨域访问请求至服务端,以使服务端在接收到跨域访问请求后,获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器;接收服务端返回的密文。

[0201] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:创建目标元素对象;设置目标元素对象的加载属性为跨源资源共享机制;设置目标元素对象的请求属性为跨域;设置目标元素对象的类型属性为不显示;基于跨域数据的页面描述信息、以及目标元素对象的加载属性、请求属性和类型属性,生成跨域访问请求。

[0202] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:接收服务端返回的包括密文的响应报文;从响应报文中解析得到跨源资源共享机制的响应头和密文;根据响应头处理密文。

[0203] 在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:加载密文;将密文转化为二进制数据;解密二进制数据,得到响应数据;在响应数据中检测标记信息,并将位于标记信息之间的数据作为跨域数据;显示跨域数据。

[0204] 进一步的,本申请实施例还提供了一种电子设备。其中,上述电子设备既可以是如图6所示的服务器,也可以是如图7所示的终端。图6和图7均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。

[0205] 图6为本申请实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的跨域访问中的相关步骤。

[0206] 本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

[0207] 另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。

[0208] 其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的跨域访问方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。

[0209] 图7为本申请实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。

[0210] 通常,本实施例中的终端包括有:处理器和存储器。

[0211] 其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

[0212] 存储器可以包括一个或多个计算机非易失性存储介质,该计算机非易失性存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧(即浏览器侧)执行的跨域访问方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。

[0213] 在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。

[0214] 本领域技术人员可以理解,图7中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。

[0215] 下面对本申请实施例提供的一种非易失性存储介质进行介绍,下文描述的一种非易失性存储介质与本文描述的其他实施例可以相互参照。

[0216] 一种非易失性存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的跨域访问方法。其中,非易失性存储介质为计算机可读的非易失性存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。

[0217] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:若接收到浏览器发送的跨域访问请求,则获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器。

[0218] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:利用第一随机算法生成目标长度;在预设的数据库中随机选择一个目标长度的数据,作为目标数据。

[0219] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:利用第二随机算法生成待确定位置;将待确定位置与前次的插入位置进行对比;若待确定位置与前次的插入位置不同,则将待确定位置作为插入位置。

[0220] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:根据跨域访问请求查询得到跨域数据;按照与浏览器协商的规则在跨域数据的首部和尾部添加标记信息。

[0221] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:随机选择一个与前次的加密算法不同的目标加密算法;利用目标加密算法对响应数据进行加密。

[0222] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:封装加密得到的密文,并添加跨源资源共享机制的响应头,得到响应报文;将响应报文返回至浏览器。

[0223] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:发送跨域访问请求至服务端,以使服务端在接收到跨域访问请求后,获取目标数据,并在目标数据中随机确定插入位置;确定跨域访问请求要访问的跨域数据,并在跨域数据的首部和尾部添加标记信息,得到待插入数据;将待插入数据插入目标数据中的插入位置,得到响应数据;对响应数据进行加密后,将加密得到的密文返回至浏览器;接收服务端返回的密文。

[0224] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:创建目标元素对象;设置目标元素对象的加载属性为跨源资源共享机制;设置目标元素对象的请求属性为跨域;设置目标元素对象的类型属性为不显示;基于跨域数据的页面描述信息、以及目标元素对象的加载属性、请求属性和类型属性,生成跨域访问请求。

[0225] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:接收服务端返回的包括密文的响应报文;从响应报文中解析得到跨源资源共享机制的响应头和密文;根据响应头处理密文。

[0226] 在本实施例中,所述处理器执行所述非易失性存储介质中保存的计算机程序时,可以具体实现以下步骤:加载密文;将密文转化为二进制数据;解密二进制数据,得到响应数据;在响应数据中检测标记信息,并将位于标记信息之间的数据作为跨域数据;显示跨域数据。

[0227] 下面对本申请实施例提供的一种计算机程序产品进行介绍,下文描述的一种计算机程序产品与本文描述的其他实施例可以相互参照。

[0228] 一种计算机程序产品,包括计算机程序 / 指令,该计算机程序 / 指令被处理器执行时实现前述公开的跨域访问方法的步骤。

[0229] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

[0230] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的非易失性存储介质中。

[0231] 本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。< / script>

Claims

1. A cross-domain access method, characterized in that: Applied to the server, including: If a cross-domain access request sent by a browser is received, the target data is obtained, and an insertion position is randomly determined in the target data; Determine the cross-domain data to be accessed by the cross-domain access request, and add marking information to the header and the tail of the cross-domain data to obtain the data to be inserted; Inserting the data to be inserted into the insertion position in the target data to obtain response data; After the response data is encrypted, the encrypted ciphertext is returned to the browser.

2. The method according to claim 1, characterized in that The acquiring of target data comprises: Generate a target length that does not exceed a preset length range using a first random algorithm; One is randomly selected from a preset database as the target data.

3. The method according to claim 2, characterized in that Generating a target length that does not exceed a preset length range using a first random algorithm includes: Determining a maximum payload of a response message supported by the browser; Determining the preset length range based on the maximum payload; The preset length range is input into the first random algorithm, so that the first random algorithm outputs a target length that does not exceed the preset length range under the constraint of the preset length range.

4. The method according to claim 1, characterized in that: Randomly determining an insertion position in the target data includes: generating a position to be determined by using a second random algorithm; Comparing the position to be determined with the previous insertion position; If the position to be determined is different from the previous insertion position, the position to be determined is used as the insertion position.

5. The method according to claim 4, characterized in that If the position to be determined is the same as the previous insertion position, the steps of generating the position to be determined by using a second random algorithm and comparing the position to be determined with the previous insertion position are performed.

6. The method according to claim 1, characterized in that Determining the cross-domain data to be accessed by the cross-domain access request, and adding marking information to the header and the tail of the cross-domain data, including: Obtaining the cross-domain data according to the cross-domain access request query; The tag information is added to the header and the tail of the cross-domain data according to the rules negotiated with the browser.

7. The method according to claim 1, characterized in that Encrypting the response data includes: Randomly select a target encryption algorithm that is different from the previous encryption algorithm; The response data is encrypted using the target encryption algorithm.

8. The method according to any one of claims 1 to 7, characterized in that: Returning the encrypted ciphertext to the browser includes: Encapsulate the encrypted ciphertext and add the response header of the cross-origin resource sharing mechanism to obtain a response message; The response message is returned to the browser.

9. A cross-domain access method, characterized in that: Applies to browsers, including: Send a cross-domain access request to a server, so that after receiving the cross-domain access request, the server obtains target data and randomly determines an insertion position in the target data; determines the cross-domain data to be accessed by the cross-domain access request, and adds marking information to the header and the tail of the cross-domain data to obtain data to be inserted; inserts the data to be inserted into the insertion position in the target data to obtain response data; encrypts the response data, and returns the encrypted ciphertext to the browser; Receive the ciphertext returned by the server.

10. The method according to claim 9, characterized in that Before sending a cross-domain access request to the server, it also includes: Create a target element object; Set the loading attribute of the target element object to a cross-origin resource sharing mechanism; Set the request attribute of the target element object to cross-domain; Set the type attribute of the target element object to not be displayed; The cross-domain access request is generated based on the page description information of the cross-domain data, and the loading attribute, request attribute and type attribute of the target element object.

11. The method according to claim 9, characterized in that Receiving the ciphertext returned by the server, including: Receiving a response message including a ciphertext returned by the server; Parsing the response message to obtain a response header and ciphertext of a cross-source resource sharing mechanism; The ciphertext is processed according to the response header.

12. The method according to claim 11, characterized in that Processing the ciphertext according to the response header includes: Load ciphertext; Convert ciphertext into binary data; Decrypting the binary data to obtain the response data; Detecting the tag information in the response data, and taking the data between the tag information as the cross-domain data; The cross-domain data is displayed.

13. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to execute the computer program to implement the method according to any one of claims 1 to 12.

14. A non-volatile storage medium, characterized in that: Used to store a computer program, wherein when the computer program is executed by a processor, the method according to any one of claims 1 to 12 is implemented.

15. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the method according to any one of claims 1 to 12 is implemented.

Citation Information

Patent Citations

  • Method, device and terminal for achieving network client-side cross-domain data request

    CN103546570A

  • Communication cross-domain security method and system, client and terminal equipment

    CN114513309A

  • Cross-domain communication method and device of web application, storage medium and terminal equipment

    CN116866329A

  • Data processing method and device and electronic equipment

    CN118138340A