本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種跨站腳本攻擊的防御裝置及方法。
背景技術(shù):
跨站腳本攻擊是一種利用Web網(wǎng)頁(yè)漏洞的網(wǎng)絡(luò)攻擊方式。攻擊終端采用在Web網(wǎng)頁(yè)中輸入包含惡意代碼的信息的方式,向應(yīng)用服務(wù)器中的應(yīng)用程序發(fā)送包含惡意代碼的訪問請(qǐng)求,使得該應(yīng)用程序在接收該訪問請(qǐng)求之后生成一個(gè)包含惡意代碼的Web網(wǎng)頁(yè),從而在Web網(wǎng)頁(yè)中插入惡意代碼。當(dāng)用戶終端打開該Web網(wǎng)頁(yè)時(shí),執(zhí)行該Web網(wǎng)頁(yè)中的惡意代碼,該惡意代碼往往用于實(shí)現(xiàn)從用戶終端惡意盜取信息等網(wǎng)絡(luò)攻擊行為,從而攻擊終端完成對(duì)用戶終端的網(wǎng)絡(luò)攻擊。
現(xiàn)有技術(shù)中通常采用對(duì)Web網(wǎng)頁(yè)的表單進(jìn)行硬編碼,以對(duì)利用表單輸入的信息進(jìn)行過濾,從而避免攻擊終端采用在Web網(wǎng)頁(yè)的表單中輸入包含惡意代碼的信息的方式進(jìn)行跨站腳本攻擊。由于現(xiàn)有技術(shù)需要對(duì)每個(gè)Web網(wǎng)頁(yè)的每個(gè)表單進(jìn)行硬編碼,工作量較大,因而現(xiàn)有的跨站腳本攻擊防御方法效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種跨站腳本攻擊的防御裝置及方法,旨在解決現(xiàn)有的跨站腳本攻擊防御方法效率較低的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種跨站腳本攻擊的防御裝置,所述裝置包括:
攔截模塊,用于通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;
判斷模塊,用于對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;
提交模塊,用于若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序。
可選地,所述判斷模塊包括:
判斷單元,用于判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符;
確定單元,用于若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼。
可選地,所述裝置還包括:
發(fā)送模塊,用于若所述請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序。
可選地,所述攔截模塊包括:
設(shè)置單元,用于設(shè)置攔截的請(qǐng)求類型,并對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行監(jiān)測(cè);
攔截單元,用于當(dāng)監(jiān)測(cè)到預(yù)設(shè)請(qǐng)求類型的請(qǐng)求時(shí)通過所述跨站腳本攻擊過濾器進(jìn)行攔截。
可選地,所述裝置還包括:
建立模塊,用于建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù);
獲取模塊,用于獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種跨站腳本攻擊的防御方法,所述方法包括以下步驟:
通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;
對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;
若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序。
可選地,所述判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼的步驟包括:
判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符;
若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼。
可選地,所述判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼的步驟之后還包括:
若所述請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序。
可選地,所述通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截的步驟包括:
設(shè)置攔截的請(qǐng)求類型,并對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行監(jiān)測(cè);
當(dāng)監(jiān)測(cè)到預(yù)設(shè)請(qǐng)求類型的請(qǐng)求時(shí)通過所述跨站腳本攻擊過濾器進(jìn)行攔截。
可選地,所述方法還包括:
建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù);
獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)。
本發(fā)明提出的跨站腳本攻擊的防御裝置及方法,通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;然后對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序,從而對(duì)跨站腳本攻擊進(jìn)行防御,由于采用了跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截,從而避免了對(duì)每個(gè)Web網(wǎng)頁(yè)進(jìn)行硬編碼,減小了工作量,提高了防御跨站腳本攻擊的效率。
附圖說明
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端的一種可選的硬件結(jié)構(gòu)示意圖;
圖2為如圖1所示的移動(dòng)終端的無線通信裝置示意圖;
圖3為本發(fā)明跨站腳本攻擊的防御裝置第一實(shí)施例的功能模塊示意圖;
圖4為本發(fā)明跨站腳本攻擊的防御裝置第二實(shí)施例中判斷模塊的細(xì)化功能模塊示意圖;
圖5為本發(fā)明跨站腳本攻擊的防御裝置第四實(shí)施例中攔截模塊的細(xì)化功能模塊示意圖;
圖6為本發(fā)明跨站腳本攻擊的防御方法第一實(shí)施例的流程示意圖;
圖7為本發(fā)明跨站腳本攻擊的防御方法第二實(shí)施例中判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼的步驟的細(xì)化流程示意圖;
圖8為本發(fā)明跨站腳本攻擊的防御方法第四實(shí)施例中通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截的步驟的細(xì)化流程示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,“模塊”與“部件”可以混合地使用。
移動(dòng)終端可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個(gè)人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動(dòng)終端以及諸如數(shù)字TV、臺(tái)式計(jì)算機(jī)等等的固定終端。下面,假設(shè)終端是移動(dòng)終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端的硬件結(jié)構(gòu)示意。
移動(dòng)終端100可以包括無線通信單元110、A/V(音頻/視頻)輸入單元120、用戶輸入單元130、感測(cè)單元140、輸出單元150、存儲(chǔ)器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的移動(dòng)終端,但是應(yīng)理解的是,并不要求實(shí)施所有示出的組件??梢蕴娲貙?shí)施更多或更少的組件。將在下面詳細(xì)描述移動(dòng)終端的元件。
無線通信單元110通常包括一個(gè)或多個(gè)組件,其允許移動(dòng)終端100與無線通信裝置或網(wǎng)絡(luò)之間的無線電通信。例如,無線通信單元可以包括移動(dòng)通信模塊112、無線互聯(lián)網(wǎng)模塊113中的至少一個(gè)。
移動(dòng)通信模塊112將無線電信號(hào)發(fā)送到基站(例如,接入點(diǎn)、節(jié)點(diǎn)B等等)、外部終端以及服務(wù)器中的至少一個(gè)和/或從其接收無線電信號(hào)。這樣的無線電信號(hào)可以包括語(yǔ)音通話信號(hào)、視頻通話信號(hào)、或者根據(jù)文本和/或多媒體消息發(fā)送和/或接收的各種類型的數(shù)據(jù)。
無線互聯(lián)網(wǎng)模塊113支持移動(dòng)終端的無線互聯(lián)網(wǎng)接入。該模塊可以內(nèi)部或外部地耦接到終端。該模塊所涉及的無線互聯(lián)網(wǎng)接入技術(shù)可以包括WLAN(無線LAN)(Wi-Fi)、Wibro(無線寬帶)、Wimax(全球微波互聯(lián)接入)、HSDPA(高速下行鏈路分組接入)等等。
A/V輸入單元120用于接收音頻或視頻信號(hào)。A/V輸入單元120可以包括相機(jī)121和麥克風(fēng)122,相機(jī)121對(duì)在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進(jìn)行處理。處理后的圖像幀可以顯示在顯示單元151上。經(jīng)相機(jī)121處理后的圖像幀可以存儲(chǔ)在存儲(chǔ)器160(或其它存儲(chǔ)介質(zhì))中或者經(jīng)由無線通信單元110進(jìn)行發(fā)送,可以根據(jù)移動(dòng)終端的構(gòu)造提供兩個(gè)或更多相機(jī)121。麥克風(fēng)122可以在電話通話模式、記錄模式、語(yǔ)音識(shí)別模式等等運(yùn)行模式中經(jīng)由麥克風(fēng)接收聲音(音頻數(shù)據(jù)),并且能夠?qū)⑦@樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語(yǔ)音)數(shù)據(jù)可以在電話通話模式的情況下轉(zhuǎn)換為可經(jīng)由移動(dòng)通信模塊112發(fā)送到移動(dòng)通信基站的格式輸出。麥克風(fēng)122可以實(shí)施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發(fā)送音頻信號(hào)的過程中產(chǎn)生的噪聲或者干擾。
用戶輸入單元130可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制移動(dòng)終端的各種操作。用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋?zhàn)衅?、觸摸板(例如,檢測(cè)由于被接觸而導(dǎo)致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當(dāng)觸摸板以層的形式疊加在顯示單元151上時(shí),可以形成觸摸屏。
接口單元170用作至少一個(gè)外部裝置與移動(dòng)終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口、音頻輸入/輸出(I/O)端口、視頻I/O端口、耳機(jī)端口等等。識(shí)別模塊可以是存儲(chǔ)用于驗(yàn)證用戶使用移動(dòng)終端100的各種信息并且可以包括用戶識(shí)別模塊(UIM)、客戶識(shí)別模塊(SIM)、通用客戶識(shí)別模塊(USIM)等等。另外,具有識(shí)別模塊的裝置(下面稱為“識(shí)別裝置”)可以采取智能卡的形式,因此,識(shí)別裝置可以經(jīng)由端口或其它連接裝置與移動(dòng)終端100連接。接口單元170可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿?dòng)終端100內(nèi)的一個(gè)或多個(gè)元件或者可以用于在移動(dòng)終端和外部裝置之間傳輸數(shù)據(jù)。
另外,當(dāng)移動(dòng)終端100與外部底座連接時(shí),接口單元170可以用作允許通過其將電力從底座提供到移動(dòng)終端100的路徑或者可以用作允許從底座輸入的各種命令信號(hào)通過其傳輸?shù)揭苿?dòng)終端的路徑。從底座輸入的各種命令信號(hào)或電力可以用作用于識(shí)別移動(dòng)終端是否準(zhǔn)確地安裝在底座上的信號(hào)。輸出單元150被構(gòu)造為以視覺、音頻和/或觸覺方式提供輸出信號(hào)(例如,音頻信號(hào)、視頻信號(hào)、警報(bào)信號(hào)、振動(dòng)信號(hào)等等)。輸出單元150可以包括顯示單元151、音頻輸出模塊152等等。
顯示單元151可以顯示在移動(dòng)終端100中處理的信息。例如,當(dāng)移動(dòng)終端100處于電話通話模式時(shí),顯示單元151可以顯示與通話或其它通信(例如,文本消息收發(fā)、多媒體文件下載等等)相關(guān)的用戶界面(UI)或圖形用戶界面(GUI)。當(dāng)移動(dòng)終端100處于視頻通話模式或者圖像捕獲模式時(shí),顯示單元151可以顯示捕獲的圖像和/或接收的圖像、示出視頻或圖像以及相關(guān)功能的UI或GUI等等。
同時(shí),當(dāng)顯示單元151和觸摸板以層的形式彼此疊加以形成觸摸屏?xí)r,顯示單元151可以用作輸入裝置和輸出裝置。顯示單元151可以包括液晶顯示器(LCD)、薄膜晶體管LCD(TFT-LCD)、有機(jī)發(fā)光二極管(OLED)顯示器、柔性顯示器、三維(3D)顯示器等等中的至少一種。這些顯示器中的一些可以被構(gòu)造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為TOLED(透明有機(jī)發(fā)光二極管)顯示器等等。根據(jù)特定想要的實(shí)施方式,移動(dòng)終端100可以包括兩個(gè)或更多顯示單元(或其它顯示裝置),例如,移動(dòng)終端可以包括外部顯示單元(未示出)和內(nèi)部顯示單元(未示出)。觸摸屏可用于檢測(cè)觸摸輸入壓力以及觸摸輸入位置和觸摸輸入面積。
音頻輸出模塊152可以在移動(dòng)終端處于呼叫信號(hào)接收模式、通話模式、記錄模式、語(yǔ)音識(shí)別模式、廣播接收模式等等模式下時(shí),將無線通信單元110接收的或者在存儲(chǔ)器160中存儲(chǔ)的音頻數(shù)據(jù)轉(zhuǎn)換音頻信號(hào)并且輸出為聲音。而且,音頻輸出模塊152可以提供與移動(dòng)終端100執(zhí)行的特定功能相關(guān)的音頻輸出(例如,呼叫信號(hào)接收聲音、消息接收聲音等等)。音頻輸出模塊152可以包括拾音器、蜂鳴器等等。
存儲(chǔ)器160可以存儲(chǔ)由控制器180執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時(shí)地存儲(chǔ)己經(jīng)輸出或?qū)⒁敵龅臄?shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲(chǔ)器160可以存儲(chǔ)關(guān)于當(dāng)觸摸施加到觸摸屏?xí)r輸出的各種方式的振動(dòng)和音頻信號(hào)的數(shù)據(jù)。
存儲(chǔ)器160可以包括至少一種類型的存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)包括閃存、硬盤、多媒體卡、卡型存儲(chǔ)器(例如,SD或DX存儲(chǔ)器等等)、隨機(jī)訪問存儲(chǔ)器(RAM)、靜態(tài)隨機(jī)訪問存儲(chǔ)器(SRAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、可編程只讀存儲(chǔ)器(PROM)、磁性存儲(chǔ)器、磁盤、光盤等等。而且,移動(dòng)終端100可以與通過網(wǎng)絡(luò)連接執(zhí)行存儲(chǔ)器160的存儲(chǔ)功能的網(wǎng)絡(luò)存儲(chǔ)裝置協(xié)作。
控制器180通常控制移動(dòng)終端的總體操作。例如,控制器180執(zhí)行與語(yǔ)音通話、數(shù)據(jù)通信、視頻通話等等相關(guān)的控制和處理。另外,控制器180可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊181,多媒體模塊181可以構(gòu)造在控制器180內(nèi),或者可以構(gòu)造為與控制器180分離??刂破?80可以執(zhí)行模式識(shí)別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識(shí)別為字符或圖像。
電源單元190在控制器180的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當(dāng)?shù)碾娏Α?/p>
這里描述的各種實(shí)施方式可以以使用例如計(jì)算機(jī)軟件、硬件或其任何組合的計(jì)算機(jī)可讀介質(zhì)來實(shí)施。對(duì)于硬件實(shí)施,這里描述的實(shí)施方式可以通過使用特定用途集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設(shè)計(jì)為執(zhí)行這里描述的功能的電子單元中的至少一種來實(shí)施,在一些情況下,這樣的實(shí)施方式可以在控制器180中實(shí)施。對(duì)于軟件實(shí)施,諸如過程或功能的實(shí)施方式可以與允許執(zhí)行至少一種功能或操作的單獨(dú)的軟件模塊來實(shí)施。軟件代碼可以由以任何適當(dāng)?shù)木幊陶Z(yǔ)言編寫的軟件應(yīng)用程序(或程序)來實(shí)施,軟件代碼可以存儲(chǔ)在存儲(chǔ)器160中并且由控制器180執(zhí)行。
至此,己經(jīng)按照其功能描述了移動(dòng)終端。下面,為了簡(jiǎn)要起見,將描述諸如折疊型、直板型、擺動(dòng)型、滑動(dòng)型移動(dòng)終端等等的各種類型的移動(dòng)終端中的滑動(dòng)型移動(dòng)終端作為示例。因此,本發(fā)明能夠應(yīng)用于任何類型的移動(dòng)終端,并且不限于滑動(dòng)型移動(dòng)終端。
如圖1中所示的移動(dòng)終端100可以被構(gòu)造為利用經(jīng)由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無線通信裝置以及基于衛(wèi)星的通信裝置來操作。
現(xiàn)在將參考圖2描述其中根據(jù)本發(fā)明的移動(dòng)終端能夠操作的通信裝置。
這樣的通信裝置可以使用不同的空中接口和/或物理層。例如,由通信裝置使用的空中接口包括例如頻分多址(FDMA)、時(shí)分多址(TDMA)、碼分多址(CDMA)和通用移動(dòng)通信裝置(UMTS)(特別地,長(zhǎng)期演進(jìn)(LTE))、全球移動(dòng)通信裝置(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信裝置,但是這樣的教導(dǎo)同樣適用于其它類型的裝置。
參考圖2,CDMA無線通信裝置可以包括多個(gè)移動(dòng)終端100、多個(gè)基站(BS)270、基站控制器(BSC)275和移動(dòng)交換中心(MSC)280。MSC280被構(gòu)造為與公共電話交換網(wǎng)絡(luò)(PSTN)290形成接口。MSC280還被構(gòu)造為與可以經(jīng)由回程線路耦接到BS270的BSC275形成接口?;爻叹€路可以根據(jù)若干己知的接口中的任一種來構(gòu)造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的裝置可以包括多個(gè)BSC275。
每個(gè)BS270可以服務(wù)一個(gè)或多個(gè)分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個(gè)分區(qū)放射狀地遠(yuǎn)離BS270?;蛘撸總€(gè)分區(qū)可以由用于分集接收的兩個(gè)或更多天線覆蓋。每個(gè)BS270可以被構(gòu)造為支持多個(gè)頻率分配,并且每個(gè)頻率分配具有特定頻譜(例如,1.25MHz,5MHz等等)。
分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子裝置(BTS)或者其它等效術(shù)語(yǔ)。在這樣的情況下,術(shù)語(yǔ)"基站"可以用于籠統(tǒng)地表示單個(gè)BSC275和至少一個(gè)BS270?;疽部梢员环Q為"蜂窩站"?;蛘?,特定BS270的各分區(qū)可以被稱為多個(gè)蜂窩站。
如圖2中所示,廣播發(fā)射器(BT)295將廣播信號(hào)發(fā)送給在裝置內(nèi)操作的移動(dòng)終端100。如圖1中所示的廣播接收模塊111被設(shè)置在移動(dòng)終端100處以接收由BT295發(fā)送的廣播信號(hào)。在圖2中,示出了幾個(gè)全球定位裝置(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個(gè)移動(dòng)終端100中的至少一個(gè)。
在圖2中,描繪了多個(gè)衛(wèi)星300,但是可以理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。如圖1中所示的位置信息模塊115通常被構(gòu)造為與衛(wèi)星300配合以獲得想要的定位信息。替代GPS跟蹤技術(shù)或者在GPS跟蹤技術(shù)之外,可以使用可以跟蹤移動(dòng)終端的位置的其它技術(shù)。另外,至少一個(gè)GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
作為無線通信裝置的一個(gè)典型操作,BS270接收來自各種移動(dòng)終端100的反向鏈路信號(hào)。移動(dòng)終端100通常參與通話、消息收發(fā)和其它類型的通信。特定BS270接收的每個(gè)反向鏈路信號(hào)被在特定BS270內(nèi)進(jìn)行處理。獲得的數(shù)據(jù)被轉(zhuǎn)發(fā)給相關(guān)的BSC275。BSC提供通話資源分配和包括BS270之間的軟切換過程的協(xié)調(diào)的移動(dòng)管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務(wù)。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應(yīng)地控制BS270以將正向鏈路信號(hào)發(fā)送到移動(dòng)終端100。
基于上述移動(dòng)終端硬件結(jié)構(gòu)、通信裝置的結(jié)構(gòu),提出本發(fā)明裝置和方法各個(gè)實(shí)施例。
本發(fā)明提供一種跨站腳本攻擊的防御裝置。
參照?qǐng)D3,圖3為本發(fā)明跨站腳本攻擊的防御裝置第一實(shí)施例的功能模塊示意圖
在本實(shí)施例中,該裝置包括:
攔截模塊10,用于通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;
在本實(shí)施例中,所述攔截模塊可以為圖1中的控制器180。為保證本實(shí)施例可以正常實(shí)施,在實(shí)施本實(shí)施例之前,開發(fā)人員需要在WEB服務(wù)器中設(shè)置一個(gè)自定義的XssFilter跨站腳本攻擊過濾器,以實(shí)現(xiàn)對(duì)例如Jsp,Servlet,靜態(tài)圖片文件或靜態(tài)html文件等進(jìn)行攔截。Filter也稱之為過濾器,是Servlet技術(shù)中比較核心的技術(shù),Servlet(Server Applet,全稱Java Servlet,未有中文譯文)。是用Java編寫的服務(wù)器端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。跨站腳本攻擊是一種利用Web網(wǎng)頁(yè)漏洞的網(wǎng)絡(luò)攻擊方式。攻擊終端采用在Web網(wǎng)頁(yè)中輸入包含惡意代碼的信息的方式,向應(yīng)用服務(wù)器中的應(yīng)用程序發(fā)送包含惡意代碼的請(qǐng)求,所述請(qǐng)求可以為訪問請(qǐng)求、評(píng)論請(qǐng)求等,使得該應(yīng)用程序在接收該請(qǐng)求之后生成一個(gè)包含惡意代碼的Web網(wǎng)頁(yè),從而在Web網(wǎng)頁(yè)中插入惡意代碼。當(dāng)用戶終端打開該Web網(wǎng)頁(yè)時(shí),終端便會(huì)執(zhí)行該Web網(wǎng)頁(yè)中的惡意代碼,該惡意代碼往往用于實(shí)現(xiàn)從用戶終端惡意盜取信息等網(wǎng)絡(luò)攻擊行為,從而攻擊終端完成對(duì)用戶終端的網(wǎng)絡(luò)攻擊。因此在將請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序之前,需要先對(duì)請(qǐng)求進(jìn)行處理,以防止發(fā)生跨站腳本攻擊。
在設(shè)置好自定義的XssFilter跨站腳本攻擊過濾器之后,在后續(xù)運(yùn)行過程中,所述跨站腳本攻擊過濾器便會(huì)實(shí)時(shí)對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截,以防止包含有惡意代碼的請(qǐng)求直接發(fā)送至應(yīng)用程序中,在本實(shí)施例中,所述請(qǐng)求可以包括訪問請(qǐng)求,發(fā)送靜態(tài)圖片請(qǐng)求,評(píng)論請(qǐng)求等。
判斷模塊20,用于對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;
在攔截到發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求之后,進(jìn)一步判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼,具體地,可以通過將所述請(qǐng)求與預(yù)設(shè)的惡意代碼進(jìn)行匹配,從而判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼。
提交模塊30,用于若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序。
若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至AntiSamy開源項(xiàng)目,開源項(xiàng)目是一個(gè)可以確保用戶輸入的HTML、CSS、JavaScript符合規(guī)范的API(Application Programming Interface,應(yīng)用程序編程接口)??梢源_保用戶無法在HTML中提交惡意代碼,所述開源項(xiàng)目接收到包含用于跨站腳本攻擊的惡意代碼之后,對(duì)所述包含用于跨站腳本攻擊的惡意代碼進(jìn)行轉(zhuǎn)義,所述轉(zhuǎn)義為將惡意代碼的標(biāo)志字符轉(zhuǎn)為特定的轉(zhuǎn)義字符的過程,比如若一般惡意代碼中都包含>,在轉(zhuǎn)義時(shí)即將>轉(zhuǎn)為>,使得所述惡意代碼轉(zhuǎn)化為符合規(guī)范的代碼。在所述開源項(xiàng)目對(duì)包含惡意代碼進(jìn)行轉(zhuǎn)義之后,將所述請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序。具體轉(zhuǎn)義方式可以參照HTML字符轉(zhuǎn)義,比如若所述請(qǐng)求中包含&時(shí),通過轉(zhuǎn)義轉(zhuǎn)為&,所述轉(zhuǎn)義方式為現(xiàn)有技術(shù)中的常用方式,在此不再一一贅述。
本實(shí)施例提出的跨站腳本攻擊的防御裝置,通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;然后對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序,從而對(duì)跨站腳本攻擊進(jìn)行防御,由于采用了跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截,從而避免了對(duì)每個(gè)Web網(wǎng)頁(yè)進(jìn)行硬編碼,減小了工作量,提高了防御跨站腳本攻擊的效率。
進(jìn)一步地,參照?qǐng)D4,基于本發(fā)明跨站腳本攻擊的防御裝置第一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御裝置第二實(shí)施例。
在本實(shí)施例中,所述判斷模塊20可以包括:
判斷單元21,用于判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符;
確定單元22,用于若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼。
在本實(shí)施例中,進(jìn)一步對(duì)判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符的方法進(jìn)行介紹,具體地,首先判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼??梢詫⑺稣?qǐng)求包含的字符與字符庫(kù)中的字符進(jìn)行匹配,若所述請(qǐng)求包含的字符在字符庫(kù)中匹配到一致的字符,則認(rèn)為所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,若所述請(qǐng)求包含的字符在字符庫(kù)中沒有匹配到一致的字符,則認(rèn)為所述請(qǐng)求不包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符。通過字符判斷請(qǐng)求中是否包含惡意代碼的方法一般適用于訪問請(qǐng)求及評(píng)論請(qǐng)求,具體實(shí)施過程中,所述跨站腳本攻擊過濾器可以對(duì)所有的請(qǐng)求進(jìn)行攔截及分析,具體地,當(dāng)所述請(qǐng)求為發(fā)表圖片時(shí),可以通過分析圖片內(nèi)容及圖片大小等判斷用戶想發(fā)表的圖片是否包含惡意代碼。
本實(shí)施例提出的跨站腳本攻擊的防御裝置,通過判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符;若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,從而實(shí)現(xiàn)對(duì)包含惡意代碼的請(qǐng)求進(jìn)行攔截。
進(jìn)一步地,基于本發(fā)明跨站腳本攻擊的防御裝置第一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御裝置第三實(shí)施例。
在本實(shí)施例中,所述裝置還包括:
發(fā)送模塊,用于若所述請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序。
在本實(shí)施例中,所述發(fā)送模塊可以為圖1中的移動(dòng)通信模塊112。若所述請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序,以便用戶可以進(jìn)行對(duì)應(yīng)的操作,比如當(dāng)所述請(qǐng)求為訪問請(qǐng)求時(shí),當(dāng)用戶觸發(fā)的訪問請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼時(shí),將所述訪問請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序,以便用戶訪問所述應(yīng)用程序。
進(jìn)一步地,參照?qǐng)D5,基于本發(fā)明跨站腳本攻擊的防御裝置第一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御裝置第四實(shí)施例。
在本實(shí)施例中,所述攔截模塊10可以包括:
設(shè)置單元11,用于設(shè)置攔截的請(qǐng)求類型,并對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行監(jiān)測(cè);
攔截單元12,用于當(dāng)監(jiān)測(cè)到預(yù)設(shè)請(qǐng)求類型的請(qǐng)求時(shí)通過所述跨站腳本攻擊過濾器進(jìn)行攔截。
在本實(shí)施例中,可以對(duì)攔截的請(qǐng)求類型進(jìn)行設(shè)置。具體地,根據(jù)用戶觸發(fā)的設(shè)置指令設(shè)置攔截的請(qǐng)求類型,比如設(shè)置攔截的請(qǐng)求類型為訪問請(qǐng)求,或者是發(fā)送圖片請(qǐng)求,當(dāng)然,用戶也可以設(shè)置對(duì)所有的請(qǐng)求都進(jìn)行攔截,以防止跨站腳本攻擊,在設(shè)置攔截的請(qǐng)求類型之后,對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)監(jiān)測(cè)到預(yù)設(shè)請(qǐng)求類型的請(qǐng)求時(shí)通過所述跨站腳本攻擊過濾器進(jìn)行攔截,以防止包含惡意代碼的請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序。
進(jìn)一步地,基于本發(fā)明跨站腳本攻擊的防御裝置第一至第四任一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御裝置第五實(shí)施例。
在本實(shí)施例中,所述裝置還包括:
建立模塊,用于建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù);
獲取模塊,用于獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)。
在本實(shí)施例中,可以根據(jù)歷史跨站腳本攻擊的惡意代碼提取對(duì)應(yīng)字符,具體地,首先建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù),然后獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,即可獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)中,所述字符庫(kù)可以建立在圖1中的存儲(chǔ)器160,以便判斷請(qǐng)求中是否包含惡意代碼。具體實(shí)施過程中,在保存之前,可以進(jìn)一步判斷所述惡意代碼對(duì)應(yīng)字符是否已經(jīng)存在于所述字符庫(kù)中,以防止重復(fù)保存,浪費(fèi)內(nèi)存,影響運(yùn)行速度。具體地,可以將獲得的惡意代碼對(duì)應(yīng)字符與字符庫(kù)中的字符進(jìn)行匹配,若匹配到一致的字符,則說明所述字符庫(kù)中已存在相同的字符,無需再進(jìn)行保存,則可以忽略本次獲得的惡意代碼對(duì)應(yīng)字符;若在字符庫(kù)中沒有匹配到一致的字符,則說明所述字符庫(kù)中沒有相同的字符,則可以將本次獲得的惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)中。
本實(shí)施例提出的跨站腳本攻擊的防御裝置,通過建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù);然后獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,即可獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù),以便后續(xù)判斷請(qǐng)求中是否包含惡意代碼時(shí)獲得對(duì)比的字符,從而提高判斷速度。
本發(fā)明進(jìn)一步提供一種跨站腳本攻擊的防御方法。
參照?qǐng)D6,圖6為本發(fā)明跨站腳本攻擊的防御方法第一實(shí)施例的流程示意圖。
在本實(shí)施例中,該跨站腳本攻擊的防御方法包括:
步驟S10,通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;
在本實(shí)施例中,為保證本實(shí)施例可以正常實(shí)施,在實(shí)施本實(shí)施例之前,開發(fā)人員需要在WEB服務(wù)器中設(shè)置一個(gè)自定義的XssFilter跨站腳本攻擊過濾器,以實(shí)現(xiàn)對(duì)例如Jsp,Servlet,靜態(tài)圖片文件或靜態(tài)html文件等進(jìn)行攔截。Filter也稱之為過濾器,是Servlet技術(shù)中比較核心的技術(shù),Servlet(Server Applet,全稱Java Servlet,未有中文譯文)。是用Java編寫的服務(wù)器端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容??缯灸_本攻擊是一種利用Web網(wǎng)頁(yè)漏洞的網(wǎng)絡(luò)攻擊方式。攻擊終端采用在Web網(wǎng)頁(yè)中輸入包含惡意代碼的信息的方式,向應(yīng)用服務(wù)器中的應(yīng)用程序發(fā)送包含惡意代碼的請(qǐng)求,所述請(qǐng)求可以為訪問請(qǐng)求、評(píng)論請(qǐng)求等,使得該應(yīng)用程序在接收該請(qǐng)求之后生成一個(gè)包含惡意代碼的Web網(wǎng)頁(yè),從而在Web網(wǎng)頁(yè)中插入惡意代碼。當(dāng)用戶終端打開該Web網(wǎng)頁(yè)時(shí),終端便會(huì)執(zhí)行該Web網(wǎng)頁(yè)中的惡意代碼,該惡意代碼往往用于實(shí)現(xiàn)從用戶終端惡意盜取信息等網(wǎng)絡(luò)攻擊行為,從而攻擊終端完成對(duì)用戶終端的網(wǎng)絡(luò)攻擊。因此在將請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序之前,需要先對(duì)請(qǐng)求進(jìn)行處理,以防止發(fā)生跨站腳本攻擊。
在設(shè)置好自定義的XssFilter跨站腳本攻擊過濾器之后,在后續(xù)運(yùn)行過程中,所述跨站腳本攻擊過濾器便會(huì)實(shí)時(shí)對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截,以防止包含有惡意代碼的請(qǐng)求直接發(fā)送至應(yīng)用程序中,在本實(shí)施例中,所述請(qǐng)求可以包括訪問請(qǐng)求,發(fā)送靜態(tài)圖片請(qǐng)求,評(píng)論請(qǐng)求等。
步驟S20,對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;
在攔截到發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求之后,進(jìn)一步判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼,具體地,可以通過將所述請(qǐng)求與預(yù)設(shè)的惡意代碼進(jìn)行匹配,從而判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼。
步驟S30,若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序。
若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至AntiSamy開源項(xiàng)目,開源項(xiàng)目是一個(gè)可以確保用戶輸入的HTML、CSS、JavaScript符合規(guī)范的API(Application Programming Interface,應(yīng)用程序編程接口)??梢源_保用戶無法在HTML中提交惡意代碼,所述開源項(xiàng)目接收到包含用于跨站腳本攻擊的惡意代碼之后,對(duì)所述包含用于跨站腳本攻擊的惡意代碼進(jìn)行轉(zhuǎn)義,所述轉(zhuǎn)義為將惡意代碼的標(biāo)志字符轉(zhuǎn)為特定的轉(zhuǎn)義字符的過程,比如若一般惡意代碼中都包含>,在轉(zhuǎn)義時(shí)即將>轉(zhuǎn)為>,使得所述惡意代碼轉(zhuǎn)化為符合規(guī)范的代碼。在所述開源項(xiàng)目對(duì)包含惡意代碼進(jìn)行轉(zhuǎn)義之后,將所述請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序。具體轉(zhuǎn)義方式可以參照HTML字符轉(zhuǎn)義,比如若所述請(qǐng)求中包含&時(shí),通過轉(zhuǎn)義轉(zhuǎn)為&,所述轉(zhuǎn)義方式為現(xiàn)有技術(shù)中的常用方式,在此不再一一贅述。
本實(shí)施例提出的跨站腳本攻擊的防御方法,通過跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截;然后對(duì)攔截到的請(qǐng)求進(jìn)行分析處理,判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼;若所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求提交至開源項(xiàng)目進(jìn)行轉(zhuǎn)義,以便將進(jìn)行轉(zhuǎn)義后的請(qǐng)求提交至所述應(yīng)用服務(wù)器中的應(yīng)用程序,從而對(duì)跨站腳本攻擊進(jìn)行防御,由于采用了跨站腳本攻擊過濾器對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行攔截,從而避免了對(duì)每個(gè)Web網(wǎng)頁(yè)進(jìn)行硬編碼,減小了工作量,提高了防御跨站腳本攻擊的效率。
進(jìn)一步地,參照?qǐng)D7,基于本發(fā)明跨站腳本攻擊的防御方法第一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御方法第二實(shí)施例。
在本實(shí)施例中,所述步驟S20可以包括:
步驟S21,判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符;
步驟S22,若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼。
在本實(shí)施例中,進(jìn)一步對(duì)判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符的方法進(jìn)行介紹,具體地,首先判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼??梢詫⑺稣?qǐng)求包含的字符與字符庫(kù)中的字符進(jìn)行匹配,若所述請(qǐng)求包含的字符在字符庫(kù)中匹配到一致的字符,則認(rèn)為所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,若所述請(qǐng)求包含的字符在字符庫(kù)中沒有匹配到一致的字符,則認(rèn)為所述請(qǐng)求不包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符。通過字符判斷請(qǐng)求中是否包含惡意代碼的方法一般適用于訪問請(qǐng)求及評(píng)論請(qǐng)求,具體實(shí)施過程中,所述跨站腳本攻擊過濾器可以對(duì)所有的請(qǐng)求進(jìn)行攔截及分析,具體地,當(dāng)所述請(qǐng)求為發(fā)表圖片時(shí),可以通過分析圖片內(nèi)容及圖片大小等判斷用戶想發(fā)表的圖片是否包含惡意代碼。
本實(shí)施例提出的跨站腳本攻擊的防御方法,通過判斷所述請(qǐng)求是否包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符;若所述請(qǐng)求包含字符庫(kù)中惡意代碼對(duì)應(yīng)字符,則確定所述請(qǐng)求包含用于跨站腳本攻擊的惡意代碼,從而實(shí)現(xiàn)對(duì)包含惡意代碼的請(qǐng)求進(jìn)行攔截。
進(jìn)一步地,基于本發(fā)明跨站腳本攻擊的防御方法第一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御方法第三實(shí)施例。
在本實(shí)施例中,所述判斷所述請(qǐng)求是否包含用于跨站腳本攻擊的惡意代碼的步驟之后還包括:
若所述請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序。
在本實(shí)施例中,若所述請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼,則將所述請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序,以便用戶可以進(jìn)行對(duì)應(yīng)的操作,比如當(dāng)所述請(qǐng)求為訪問請(qǐng)求時(shí),當(dāng)用戶觸發(fā)的訪問請(qǐng)求不包含用于跨站腳本攻擊的惡意代碼時(shí),將所述訪問請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序,以便用戶訪問所述應(yīng)用程序。
進(jìn)一步地,參照?qǐng)D8,基于本發(fā)明跨站腳本攻擊的防御方法第一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御方法第四實(shí)施例。
在本實(shí)施例中,所述步驟S10可以包括:
步驟S11,設(shè)置攔截的請(qǐng)求類型,并對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行監(jiān)測(cè);
步驟S12,當(dāng)監(jiān)測(cè)到預(yù)設(shè)請(qǐng)求類型的請(qǐng)求時(shí)通過所述跨站腳本攻擊過濾器進(jìn)行攔截。
在本實(shí)施例中,可以對(duì)攔截的請(qǐng)求類型進(jìn)行設(shè)置。具體地,根據(jù)用戶觸發(fā)的設(shè)置指令設(shè)置攔截的請(qǐng)求類型,比如設(shè)置攔截的請(qǐng)求類型為訪問請(qǐng)求,或者是發(fā)送圖片請(qǐng)求,當(dāng)然,用戶也可以設(shè)置對(duì)所有的請(qǐng)求都進(jìn)行攔截,以防止跨站腳本攻擊,在設(shè)置攔截的請(qǐng)求類型之后,對(duì)發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序的請(qǐng)求進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)監(jiān)測(cè)到預(yù)設(shè)請(qǐng)求類型的請(qǐng)求時(shí)通過所述跨站腳本攻擊過濾器進(jìn)行攔截,以防止包含惡意代碼的請(qǐng)求發(fā)送至應(yīng)用服務(wù)器中的應(yīng)用程序。
進(jìn)一步地,基于本發(fā)明跨站腳本攻擊的防御方法第一至第四任一實(shí)施例提出本發(fā)明跨站腳本攻擊的防御方法第五實(shí)施例。
在本實(shí)施例中,所述跨站腳本攻擊的防御方法還包括:
建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù);
獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)。
在本實(shí)施例中,可以根據(jù)歷史跨站腳本攻擊的惡意代碼提取對(duì)應(yīng)字符,具體地,首先建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù),然后獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,即可獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)中,以便判斷請(qǐng)求中是否包含惡意代碼。具體實(shí)施過程中,在保存之前,可以進(jìn)一步判斷所述惡意代碼對(duì)應(yīng)字符是否已經(jīng)存在于所述字符庫(kù)中,以防止重復(fù)保存,浪費(fèi)內(nèi)存,影響運(yùn)行速度。具體地,可以將獲得的惡意代碼對(duì)應(yīng)字符與字符庫(kù)中的字符進(jìn)行匹配,若匹配到一致的字符,則說明所述字符庫(kù)中已存在相同的字符,無需再進(jìn)行保存,則可以忽略本次獲得的惡意代碼對(duì)應(yīng)字符;若在字符庫(kù)中沒有匹配到一致的字符,則說明所述字符庫(kù)中沒有相同的字符,則可以將本次獲得的惡意代碼對(duì)應(yīng)字符保存至字符庫(kù)中。
本實(shí)施例提出的跨站腳本攻擊的防御裝置,通過建立存儲(chǔ)所述惡意代碼對(duì)應(yīng)字符的字符庫(kù);然后獲取歷史跨站腳本攻擊的惡意代碼,并對(duì)所述歷史跨站腳本攻擊的惡意代碼進(jìn)行分析,即可獲得惡意代碼對(duì)應(yīng)字符,并將所述惡意代碼對(duì)應(yīng)字符保存至字符庫(kù),以便后續(xù)判斷請(qǐng)求中是否包含惡意代碼時(shí)獲得對(duì)比的字符,從而提高判斷速度。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。