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