一種防止注入攻擊的方法、客戶端、服務器和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡安全領(lǐng)域,特別涉及一種防止注入攻擊的方法、客戶端、服務器和系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡技術(shù)的發(fā)展和人們需求的不斷變化,在本地安裝的獨立的客戶端往往不能滿足人們的全部需求,部分需求而需要利用客戶端與服務器的交互來實現(xiàn),而這就需要服務器接收客戶端發(fā)送的請求,并對該請求進行響應。因此,也就產(chǎn)生了對客戶端發(fā)送的請求的劫持技術(shù),攻擊方通過獲取到客戶端向服務器發(fā)送的請求,如HTTP請求,在該請求中注入非法信息形成新的請求,便可以欺騙服務器以完成某些不正當?shù)哪康?,如偽裝發(fā)送已付款信息、已完成任務信息等,這些請求并不是在客戶端進行正當操作發(fā)送的請求,但是會欺騙服務器進行響應,達到刷分、騙單等非法目的。
【發(fā)明內(nèi)容】
[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的防止注入攻擊的方法、客戶端、服務器和系統(tǒng)。
[0004]依據(jù)本發(fā)明的一個方面,提供了一種防止注入攻擊的方法,應用于客戶端,包括:從待發(fā)送給服務器的原始HTTP請求中截取URL參數(shù);將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息;其中,所述指定信息包括:預先約定的密鑰;將所述防注入信息添加到所述原始HTTP請求中得到最終的HTTP請求;將所述最終的HTTP請求發(fā)給服務器。
[0005]可選地,所述將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息包括:將截取的各URL參數(shù)和所述預先約定的密鑰按照指定的順序拼接成一個字符串;通過MD5算法對所述字符串進行加密處理,得到防注入信息。
[0006]可選地,所述指定信息進一步包括:隨機數(shù)和/或時間戳;所述將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息包括:將截取的URL參數(shù)、預先約定的密鑰以及所述隨機數(shù)和/或時間戳一起通過預設(shè)的加密算法進行處理,得到防注入信息;所述得到最終的HTTP請求進一步包括:將所述防注入信息和所述隨機數(shù)和/或時間戳添加到所述原始HTTP請求中得到最終的HTTP請求。
[0007]可選地,該方法進一步包括:保存添加到所述最終的HTTP請求中的防注入信息;接收服務器返回的HTTP響應;從所述HTTP響應中提取防注入信息;并將所提取的防注入信息與保存的所述防注入信息進行比較;如果一致則確認所述HTTP響應合法,如果不一致則確認所述HTTP響應不合法。
[0008]依據(jù)本發(fā)明的另一方面,提供了一種防止注入攻擊的方法,應用于服務器,包括:接收客戶端發(fā)送的HTTP請求;從所述HTTP請求中提取防注入信息,并從所述HTTP請求中刪除所述防注入信息;從刪除防注入信息的HTTP請求中截取URL參數(shù);將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息;其中,所述指定信息包括:預先約定的密鑰;將通過預設(shè)的加密算法處理得到的防注入信息與從所述HTTP請求中提取的防注入信息進行比較;如果一致則確定所述HTTP請求合法,如果不一致則確定所述HTTP請求為被注入攻擊信息的HTTP請求。
[0009]可選地,所述將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息包括:將截取的各URL參數(shù)和所述預先約定的密鑰按照指定的順序拼接成一個字符串;通過MD5算法對所述字符串進行加密處理,得到防注入信息。
[0010]可選地,該方法進一步包括:保存從所接收到的HTTP請求中提取的防注入信息;當接收到客戶端發(fā)送的HTTP請求時,從該HTTP請求中提取防注入信息后,判斷所保存的防注入信息中是否存在同樣的防注入信息;如果存在則確定當前接收到的HTTP請求為惡意重復發(fā)送的HTTP請求。
[0011]可選地,該方法進一步包括:提取所述HTTP請求中包含的一個隨機數(shù)和/或時間戳;所述得到防注入信息進一步包括:將截取的URL參數(shù)、預先約定的密鑰和所述隨機數(shù)和/或時間戳一起通過預設(shè)的加密算法進行處理,得到防注入信息。
[0012]可選地,該方法進一步包括:將從所述HTTP請求中提取的防注入信息添加到對應的HTTP響應中;將所述HTTP響應返回給客戶端。
[0013]可選地,在從所述HTTP請求中提取防注入信息的步驟之前,該方法進一步包括:根據(jù)所述HTTP請求的中的應用標識,判斷相應的應用是否具有操作權(quán)限;如果有操作權(quán)限,則執(zhí)行從所述HTTP請求中提取防注入信息的步驟;如果沒有操作權(quán)限,則不再執(zhí)行從所述HTTP請求中提取防注入信息的步驟。
[0014]依據(jù)本發(fā)明的又一方面,提供了一種防止注入攻擊的客戶端裝置,包括:參數(shù)截取單元,適于從待發(fā)送給服務器的原始HTTP請求中截取URL參數(shù);防注入信息生成單元,將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息;其中,所述指定信息包括:預先約定的密鑰;添加單元,適于將所述防注入信息添加到所述原始HTTP請求中得到最終的HTTP請求;發(fā)送單元,適于將所述最終的HTTP請求發(fā)給服務器。
[0015]可選地,所述防注入信息生成單元,適于將截取的各URL參數(shù)和所述預先約定的密鑰按照指定的順序拼接成一個字符串,通過MD5算法對所述字符串進行加密處理,得到防注入信息。
[0016]可選地,所述指定信息進一步包括:隨機數(shù)和/或時間戳;所述防注入信息生成單元,適于將截取的URL參數(shù)、預先約定的密鑰以及所述隨機數(shù)和/或時間戳一起通過預設(shè)的加密算法進行處理,得到防注入信息;所述添加單元,適于將所述防注入信息和所述隨機數(shù)和/或時間戳添加到所述原始HTTP請求中得到最終的HTTP請求。
[0017]可選地,該裝置進一步包括:存儲單元和接收處理單元;所述添加單元,進一步適于將添加到所述最終的HTTP請求中的防注入信息保存到存儲單元中;所述接收處理單元,適于接收服務器返回的HTTP響應,從所述HTTP響應中提取防注入信息,并將所提取的防注入信息與存儲單元中保存的所述防注入信息進行比較;如果一致則確認所述HTTP響應合法,如果不一致則確認所述HTTP響應不合法。
[0018]依據(jù)本發(fā)明的再一方面,提供了一種防止注入攻擊的服務器,包括:接收單元,適于接收客戶端發(fā)送的HTTP請求;防注入信息提取單元,適于從所述HTTP請求中提取防注入信息,并從所述HTTP請求中刪除所述防注入信息;參數(shù)截取單元,適于從刪除防注入信息的HTTP請求中截取URL參數(shù);防注入信息生成單元,適于將截取的URL參數(shù)和指定信息一起通過預設(shè)的加密算法進行處理,得到防注入信息;其中,所述指定信息包括:預先約定的密鑰;比較處理單元,適于將通過預設(shè)的加密算法處理得到的防注入信息與從所述HTTP請求中提取的防注入信息進行比較;如果一致則確定所述HTTP請求合法,如果不一致則確定所述HTTP請求為被注入攻擊信息的HTTP請求。
[0019]可選地,所述防注入信息生成單元,適于將截取的各URL參數(shù)和所述預先約定的密鑰按照指定的順序拼接成一個字符串,通過MD5算法對所述字符串進行加密處理,得到防注入信息。
[0020]可選地,該服務器進一步包括:存儲單元和惡意重發(fā)處理單元;所述防注入信息提取單元,適于將從所接收到的HTTP請求中提取的防注入信息保存到所述存儲單元中;所述惡意重發(fā)處理單元,適于當接收到客戶端發(fā)送的HTTP請求時,從該HTTP請求中提取防注入信息后,判斷所述存儲單元中保存的防注入信息中是否存在同樣的防注入信息;如果存在則確定當前接收到的HTTP請求為惡意重復發(fā)送的HTTP請求。
[0021]可選地,所述防注入信息生成單元,適于提取所述HTTP請求中包含的一個隨機/時間戳,將截取的URL參數(shù)、預先約定的密鑰和所述隨機數(shù)和/或時間戳一起通過預設(shè)的加密算法進行處理,得到防注入信息。
[0022]可選地,該服務器進一步包括:響應單元,適于將從所述HTTP請求中提取的防注入信息添加到對應的HTTP響應中,將所述HTTP響應返回給客戶端。
[0023]可選地,該服務器進一步包括:鑒權(quán)單元,適于根據(jù)所述HTTP請求的中的應用標識,判斷相應的應用是否具有操作權(quán)限;如果有操作權(quán)限,則通知所述防注入信息提取單元執(zhí)行從所述HTTP請求中提取防注入信息的步驟;如果沒有操作權(quán)限,則不通知所述防注入?目息提取單兀。
[0024]依據(jù)本發(fā)明的再一方面,提供了一種防止注入攻擊的系統(tǒng),包括:至少一如上述任一項所述的服務器和至少一如上述任一項所述的客戶端裝置。
[0025]本發(fā)明實施例的有益效果是:本發(fā)明的技術(shù)方案,通過在客戶端側(cè)對待發(fā)送給服務器的原始HTTP請求進行截取URL參數(shù)的操作,將截取的URL參數(shù)和預先指定的信息通過預設(shè)的加密算法進行處理,得到包括預先約定的密鑰的防注入信息,再將所述防注入信息添加到所述原始HTTP請求中得到最終的HTTP請求后發(fā)給服務器,經(jīng)過上述處理得到的最終HTTP請求當被劫持獲取到時,攻擊方如果向劫持到的HTTP請求中注入信息得到偽裝請求,那么偽裝請求不能正確地被服務器響應,因此避免了服務器被攻擊方發(fā)送的偽裝請求所欺騙,可以有效地應對刷分、騙單等攻擊,采取的技術(shù)手段易于實施,效果顯著。
[0026]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0027]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限