本技術涉及計算機,特別涉及一種跨域訪問方法、設備、介質及程序產(chǎn)品。
背景技術:
1、目前,為實現(xiàn)瀏覽器跨域訪問,可以利用<script>標簽的跨域特性,通過動態(tài)創(chuàng)建<script>標簽,請求一個帶有回調函數(shù)的接口,使得服務端返回的數(shù)據(jù)作為回調函數(shù)的參數(shù)傳入,從而實現(xiàn)跨域請求;此過程中,服務端返回的數(shù)據(jù)攜帶于url中,容易被劫持。當然,也可以在服務端設置一個代理服務器,將瀏覽器的請求發(fā)送到代理服務器,并將代理服務器的響應返回給瀏覽器,從而實現(xiàn)跨域請求;此方案實現(xiàn)較為復雜,額外搭建的反向代理服務器存在安全隱患??梢?,當前的瀏覽器跨域訪問的實現(xiàn)過程較復雜,安全性也有待提升。
2、因此,如何提高瀏覽器跨域訪問的數(shù)據(jù)安全性和便捷性,是本領域技術人員需要解決的問題。
技術實現(xiàn)思路
1、有鑒于此,本技術的目的在于提供一種跨域訪問方法、設備、介質及程序產(chǎn)品,以提高瀏覽器跨域訪問的數(shù)據(jù)安全性和便捷性。其具體方案如下:
2、第一方面,本技術提供了一種跨域訪問方法,應用于服務端,包括:
3、若接收到瀏覽器發(fā)送的跨域訪問請求,則獲取目標數(shù)據(jù),并在所述目標數(shù)據(jù)中隨機確定插入位置;
4、確定所述跨域訪問請求要訪問的跨域數(shù)據(jù),并在所述跨域數(shù)據(jù)的首部和尾部添加標記信息,得到待插入數(shù)據(jù);
5、將所述待插入數(shù)據(jù)插入所述目標數(shù)據(jù)中的所述插入位置,得到響應數(shù)據(jù);
6、對所述響應數(shù)據(jù)進行加密后,將加密得到的密文返回至所述瀏覽器。
7、可選地,所述獲取目標數(shù)據(jù),包括:
8、利用第一隨機算法生成目標長度;
9、在預設的數(shù)據(jù)庫中隨機選擇一個所述目標長度的數(shù)據(jù),作為所述目標數(shù)據(jù)。
10、可選地,所述目標長度不超過預設長度范圍。
11、可選地,利用第一隨機算法生成不超過預設長度范圍的目標長度,包括:
12、確定所述瀏覽器支持的響應報文的最大有效負載;
13、基于所述最大有效負載確定所述預設長度范圍;
14、將所述預設長度范圍輸入所述第一隨機算法,以使所述第一隨機算法在所述預設長度范圍的約束下,輸出不超過所述預設長度范圍的目標長度。
15、可選地,在所述目標數(shù)據(jù)中隨機確定插入位置,包括:
16、利用第二隨機算法生成待確定位置;
17、將所述待確定位置與前次的插入位置進行對比;
18、若所述待確定位置與前次的插入位置不同,則將所述待確定位置作為所述插入位置。
19、可選地,若所述待確定位置與前次的插入位置相同,則執(zhí)行利用第二隨機算法生成待確定位置;將所述待確定位置與前次的插入位置進行對比的步驟。
20、可選地,確定所述跨域訪問請求要訪問的跨域數(shù)據(jù),并在所述跨域數(shù)據(jù)的首部和尾部添加標記信息,包括:
21、根據(jù)所述跨域訪問請求查詢得到所述跨域數(shù)據(jù);
22、按照與所述瀏覽器協(xié)商的規(guī)則在所述跨域數(shù)據(jù)的首部和尾部添加所述標記信息。
23、可選地,對所述響應數(shù)據(jù)進行加密,包括:
24、隨機選擇一個與前次的加密算法不同的目標加密算法;
25、利用所述目標加密算法對所述響應數(shù)據(jù)進行加密。
26、可選地,將加密得到的密文返回至所述瀏覽器,包括:
27、封裝加密得到的密文,并添加跨源資源共享機制的響應頭,得到響應報文;
28、將所述響應報文返回至所述瀏覽器。
29、第二方面,本技術提供了一種跨域訪問方法,應用于瀏覽器,包括:
30、發(fā)送跨域訪問請求至服務端,以使所述服務端在接收到所述跨域訪問請求后,獲取目標數(shù)據(jù),并在所述目標數(shù)據(jù)中隨機確定插入位置;確定所述跨域訪問請求要訪問的跨域數(shù)據(jù),并在所述跨域數(shù)據(jù)的首部和尾部添加標記信息,得到待插入數(shù)據(jù);將所述待插入數(shù)據(jù)插入所述目標數(shù)據(jù)中的所述插入位置,得到響應數(shù)據(jù);對所述響應數(shù)據(jù)進行加密后,將加密得到的密文返回至所述瀏覽器;
31、接收所述服務端返回的密文。
32、可選地,發(fā)送跨域訪問請求至服務端之前,還包括:
33、創(chuàng)建目標元素對象;
34、設置所述目標元素對象的加載屬性為跨源資源共享機制;
35、設置所述目標元素對象的請求屬性為跨域;
36、設置所述目標元素對象的類型屬性為不顯示;
37、基于所述跨域數(shù)據(jù)的頁面描述信息、以及所述目標元素對象的加載屬性、請求屬性和類型屬性,生成所述跨域訪問請求。
38、可選地,接收所述服務端返回的密文,包括:
39、接收所述服務端返回的包括密文的響應報文;
40、從所述響應報文中解析得到跨源資源共享機制的響應頭和密文;
41、根據(jù)所述響應頭處理密文。
42、可選地,根據(jù)所述響應頭處理密文,包括:
43、加載密文;
44、將密文轉化為二進制數(shù)據(jù);
45、解密所述二進制數(shù)據(jù),得到所述響應數(shù)據(jù);
46、在所述響應數(shù)據(jù)中檢測所述標記信息,并將位于所述標記信息之間的數(shù)據(jù)作為所述跨域數(shù)據(jù);
47、顯示所述跨域數(shù)據(jù)。
48、第三方面,本技術提供了一種跨域訪問裝置,應用于服務端,包括:
49、獲取模塊,用于若接收到瀏覽器發(fā)送的跨域訪問請求,則獲取目標數(shù)據(jù),并在所述目標數(shù)據(jù)中隨機確定插入位置;
50、確定模塊,用于確定所述跨域訪問請求要訪問的跨域數(shù)據(jù),并在所述跨域數(shù)據(jù)的首部和尾部添加標記信息,得到待插入數(shù)據(jù);
51、插入模塊,用于將所述待插入數(shù)據(jù)插入所述目標數(shù)據(jù)中的所述插入位置,得到響應數(shù)據(jù);
52、返回模塊,用于對所述響應數(shù)據(jù)進行加密后,將加密得到的密文返回至所述瀏覽器。
53、可選地,所述獲取模塊具體用于:
54、利用第一隨機算法生成目標長度;
55、在預設的數(shù)據(jù)庫中隨機選擇一個所述目標長度的數(shù)據(jù),作為所述目標數(shù)據(jù)。
56、可選地,所述目標長度不超過預設長度范圍。
57、可選地,獲取模塊具體用于:
58、利用第二隨機算法生成待確定位置;
59、將所述待確定位置與前次的插入位置進行對比;
60、若所述待確定位置與前次的插入位置不同,則將所述待確定位置作為所述插入位置。
61、可選地,獲取模塊具體用于:
62、若所述待確定位置與前次的插入位置相同,則執(zhí)行利用第二隨機算法生成待確定位置;將所述待確定位置與前次的插入位置進行對比的步驟。
63、可選地,確定模塊具體用于:
64、根據(jù)所述跨域訪問請求查詢得到所述跨域數(shù)據(jù);
65、按照與所述瀏覽器協(xié)商的規(guī)則在所述跨域數(shù)據(jù)的首部和尾部添加所述標記信息。
66、可選地,返回模塊具體用于:
67、隨機選擇一個與前次的加密算法不同的目標加密算法;
68、利用所述目標加密算法對所述響應數(shù)據(jù)進行加密。
69、可選地,返回模塊具體用于:
70、封裝加密得到的密文,并添加跨源資源共享機制的響應頭,得到響應報文;
71、將所述響應報文返回至所述瀏覽器。
72、第四方面,本技術提供了一種跨域訪問裝置,應用于瀏覽器,包括:
73、發(fā)送模塊,用于發(fā)送跨域訪問請求至服務端,以使所述服務端在接收到所述跨域訪問請求后,獲取目標數(shù)據(jù),并在所述目標數(shù)據(jù)中隨機確定插入位置;確定所述跨域訪問請求要訪問的跨域數(shù)據(jù),并在所述跨域數(shù)據(jù)的首部和尾部添加標記信息,得到待插入數(shù)據(jù);將所述待插入數(shù)據(jù)插入所述目標數(shù)據(jù)中的所述插入位置,得到響應數(shù)據(jù);對所述響應數(shù)據(jù)進行加密后,將加密得到的密文返回至所述瀏覽器;
74、接收模塊,用于接收所述服務端返回的密文。
75、可選地,還包括:
76、創(chuàng)建模塊,用于創(chuàng)建目標元素對象;設置所述目標元素對象的加載屬性為跨源資源共享機制;設置所述目標元素對象的請求屬性為跨域;設置所述目標元素對象的類型屬性為不顯示;基于所述跨域數(shù)據(jù)的頁面描述信息、以及所述目標元素對象的加載屬性、請求屬性和類型屬性,生成所述跨域訪問請求。
77、可選地,接收模塊具體用于:
78、接收所述服務端返回的包括密文的響應報文;
79、從所述響應報文中解析得到跨源資源共享機制的響應頭和密文;
80、根據(jù)所述響應頭處理密文。
81、可選地,接收模塊具體用于:
82、加載密文;
83、將密文轉化為二進制數(shù)據(jù);
84、解密所述二進制數(shù)據(jù),得到所述響應數(shù)據(jù);
85、在所述響應數(shù)據(jù)中檢測所述標記信息,并將位于所述標記信息之間的數(shù)據(jù)作為所述跨域數(shù)據(jù);
86、顯示所述跨域數(shù)據(jù)。
87、第五方面,本技術提供了一種電子設備,包括:
88、存儲器,用于存儲計算機程序;
89、處理器,用于執(zhí)行所述計算機程序,以實現(xiàn)前述公開的跨域訪問方法。
90、第六方面,本技術提供了一種非易失性存儲介質,用于保存計算機程序,其中,所述計算機程序被處理器執(zhí)行時實現(xiàn)前述公開的跨域訪問方法。
91、第七方面,本技術提供了一種計算機程序產(chǎn)品,包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)前述公開的跨域訪問方法的步驟。
92、通過以上方案可知,本技術提供了一種跨域訪問方法,應用于服務端,包括:若接收到瀏覽器發(fā)送的跨域訪問請求,則獲取目標數(shù)據(jù),并在所述目標數(shù)據(jù)中隨機確定插入位置;確定所述跨域訪問請求要訪問的跨域數(shù)據(jù),并在所述跨域數(shù)據(jù)的首部和尾部添加標記信息,得到待插入數(shù)據(jù);將所述待插入數(shù)據(jù)插入所述目標數(shù)據(jù)中的所述插入位置,得到響應數(shù)據(jù);對所述響應數(shù)據(jù)進行加密后,將加密得到的密文返回至所述瀏覽器。
93、可見,本技術的有益效果為:將跨域數(shù)據(jù)隨機填充在一段目標數(shù)據(jù)中,從而利用目標數(shù)據(jù)來隱藏跨域數(shù)據(jù),能夠提升跨域數(shù)據(jù)的安全性;并且填充有跨域數(shù)據(jù)的目標數(shù)據(jù)以密文形式作為響應數(shù)據(jù)返回給瀏覽器,從而再次提升了數(shù)據(jù)安全性。該方案無需額外搭建反向代理服務器,實現(xiàn)過程中跨域數(shù)據(jù)有二次安全保護,并且數(shù)據(jù)所在位置隨機,因此能夠提高瀏覽器跨域訪問的數(shù)據(jù)安全性和便捷性。
94、相應地,本技術提供的一種跨域訪問裝置、設備、介質及程序產(chǎn)品,也同樣具有上述技術效果。