在網(wǎng)頁客戶端和動態(tài)分配的地址之間建立的客戶端服務(wù)器會話的穩(wěn)定性。
[0044]期望的是,提供一種方式將網(wǎng)頁客戶端路由到多種多樣的支持網(wǎng)頁的計(jì)算設(shè)備,從而允許從大量的設(shè)備對內(nèi)容和特征進(jìn)行遠(yuǎn)程的基于網(wǎng)頁的訪問。更具體而言,有利的是,在具有與用戶可以路由到和訪問靜態(tài)尋址的網(wǎng)頁服務(wù)器處的網(wǎng)站內(nèi)容相同的簡單性、穩(wěn)定性和可靠性的情況下,將動態(tài)尋址的移動計(jì)算設(shè)備(例如,移動電話、PDA、平板計(jì)算機(jī)等)用作網(wǎng)頁客戶端可通過IP網(wǎng)絡(luò)訪問的網(wǎng)頁服務(wù)器。例如,隨著PDA和智能電話技術(shù)的提高,用戶在這些設(shè)備上存儲越來越多的信息。這種增加涉及信息的數(shù)量及其類型的范圍兩方面。例如,類型可以包括但不限于:歷史的和當(dāng)前的物理位置、視頻、音樂和其它多媒體文件、文字處理文檔和聯(lián)系列表、以及各種交互式游戲。
[0045]然而,如對用戶和對移動設(shè)備應(yīng)用領(lǐng)域的普通技術(shù)人員是已知的,希望共享其移動設(shè)備上的信息的用戶具有有限的選項(xiàng)集。例如,用戶可以將所選擇的文件以電子郵件方式發(fā)送給預(yù)期的接收者。然后,可以通過該移動設(shè)備到因特網(wǎng)的鏈接中的一個或多個(例如,通過到蜂窩無線網(wǎng)絡(luò)的蜂窩無線上行鏈路,并然后通過其到因特網(wǎng)的接口,或者到本地接入點(diǎn)去往因特網(wǎng)的W1-Fi鏈路),發(fā)送具有該附件的電子郵件。該電子郵件附件是共享文件的手段,然而,其具有很多的限制。一個這種限制是需要用戶必須實(shí)際地占有該移動設(shè)備,另外,通常需要由用戶進(jìn)行直接操作,例如選擇和粘貼文件,以及填寫該電子郵件消息的地址列表。
[0046]替代地,用戶可以將從用戶的移動設(shè)備選擇的文件發(fā)布到該用戶的社交網(wǎng)絡(luò)頁面。然而,使用這些社交網(wǎng)絡(luò)作為共享用戶的移動設(shè)備上的文件的手段具有很多與電子郵件共享手段相同的要求和限制。例如,每次用戶決定共享只位于他或她的移動設(shè)備上的文件時,該用戶必須實(shí)際地占有該設(shè)備。此外,還需要用戶手動地執(zhí)行文件的上傳和發(fā)布。此外,社交網(wǎng)絡(luò)可能對可以訪問的文件的種類、以及人機(jī)界面機(jī)制施加了限制。移動設(shè)備用戶共享設(shè)備上存儲的文件的一種常規(guī)方法是:使用例如上面針對社交網(wǎng)絡(luò)發(fā)布所描述的相同鏈接,將所選擇的文件上傳到“云”盤(諸如Apple iCloud)。然而,該方法也需要每次用戶希望共享文件時,該用戶實(shí)際地占有該移動設(shè)備。動態(tài)尋址方案的存在是對通過IP網(wǎng)絡(luò)從移動計(jì)算設(shè)備(諸如移動電話和無線PDA)訪問內(nèi)容的明顯障礙。如先前所描述的,在諸如CDMA、UMTS、GPRS、W1-Fi等之類的網(wǎng)絡(luò)中,移動電話和無線PDA未被分配靜態(tài)的、可路由的IP地址。相反,其地址是動態(tài)分配的,并且出于主要與網(wǎng)絡(luò)的需求和設(shè)備的移動性和無線連接有關(guān)的任意數(shù)量的原因,可能以規(guī)則的或隨機(jī)的時間而改變。由于在IP和專用網(wǎng)絡(luò)中的許多復(fù)雜和專有系統(tǒng),因此期望在這些網(wǎng)絡(luò)之中或者跨越這些網(wǎng)絡(luò)嘗試訪問和獲取位于動態(tài)尋址的設(shè)備處的內(nèi)容將需要相當(dāng)大的費(fèi)用、工程工時和設(shè)計(jì)復(fù)雜度、以及對諸如DNS服務(wù)器、客戶網(wǎng)關(guān)和復(fù)雜的隧道化配置之類的專有系統(tǒng)的訪問和修改。
[0047]參見圖1,圖1為本發(fā)明實(shí)施例一提供的一種防止惡意攻擊方法的流程圖。本發(fā)明實(shí)施例的防止惡意攻擊方法包括以下步驟:
[0048]S11,第二服務(wù)器接收所述客戶端發(fā)送的第一數(shù)據(jù),所述第一數(shù)據(jù)為來自各個客戶端的連接請求數(shù)據(jù)。
[0049]參加圖2,圖2是加入了 Nginx代理服務(wù)器和Redis服務(wù)器用于參數(shù)驗(yàn)證的網(wǎng)站服務(wù)器分布圖,第一服務(wù)器可以為業(yè)務(wù)服務(wù)器,第二服務(wù)器可以Nginx代理服務(wù)器,第三服務(wù)器可以為Redis服務(wù)器。
[0050]具體地,當(dāng)客戶端向第二服務(wù)器發(fā)送含有連接請求的數(shù)據(jù)時,在第二服務(wù)器獲取來自客戶端的連接請求數(shù)據(jù),第二服務(wù)器可以為Nginx代理服務(wù)器,可以獲取到請求報文中的所有內(nèi)容,如客戶端的IP地址、請求鏈接、參數(shù)個數(shù)及參數(shù)名稱。例如,客戶端A和客戶端B同時登陸網(wǎng)站Z,用戶A的IP地址為IP-A,用戶B的IP地址為IP-B,那么,客戶端A和客戶端B訪問相同的請求和參數(shù),請求鏈接為http://xxx.test, com/check ? username
——Π3-ΓΠΘ ο
[0051]S12,所述第二服務(wù)器獲取過濾規(guī)則,所述過濾規(guī)則包括請求地址列表和參數(shù)規(guī)則。
[0052]具體地,第三服務(wù)器可以為Redis服務(wù)器集群,是基于內(nèi)存的存儲數(shù)據(jù)服務(wù)器。請求地址列表為IP黑名單列表分布于Redis服務(wù)器集群,參數(shù)規(guī)則分布于Redis服務(wù)器集群。IP黑名單列表可以實(shí)時更新。IP黑名單列表由第二服務(wù)器的數(shù)據(jù)管理模塊來進(jìn)行維護(hù)。如果在預(yù)設(shè)時間內(nèi)未檢測到黑名單中客戶端有非法操作,則將該客戶端從黑名單列表中刪除。
[0053]S13,所述第二服務(wù)器根據(jù)所述過濾規(guī)則對所述第一數(shù)據(jù)進(jìn)行過濾,并將滿足過濾規(guī)則的第一數(shù)據(jù)發(fā)送至第一服務(wù)器。
[0054]具體地,Lua是一個可以嵌入到Nginx代理服務(wù)器配置文件中的動態(tài)腳本語言,從而可以在Nginx請求處理的任何階段執(zhí)行各種Lua代碼,可以采用Lua腳本做Nginx的訪問限制,做Nginx的rewrite跳轉(zhuǎn),根據(jù)請求IP做不同的響應(yīng),獲取并過濾請求參數(shù),調(diào)用數(shù)據(jù)庫語句等等。Nginx代理服務(wù)器通過Lua腳本連接Redis服務(wù)器,讀取IP黑名單,由Nginx代理服務(wù)器進(jìn)一步對所述IP地址進(jìn)行檢測,如果在所述IP黑名單列表,則向客戶端返回錯誤信息,拒絕訪問,如果不在所述IP黑名單列表,則進(jìn)行下一步驗(yàn)證。Nginx代理服務(wù)器通過Lua腳本連接Redis服務(wù)器獲取參數(shù)規(guī)則,通過所述參數(shù)規(guī)則過濾器過濾請求連接和參數(shù),如果不符合所述參數(shù)規(guī)則,返回錯誤信息,如果符合所述參數(shù)規(guī)則,進(jìn)入業(yè)務(wù)服務(wù)器進(jìn)行業(yè)務(wù)處理。
[0055]所述第一數(shù)據(jù)是來自各個客戶端發(fā)送的連接請求數(shù)據(jù),每一個連接請求數(shù)據(jù)對應(yīng)一個客戶端,第二服務(wù)器對第一數(shù)據(jù)進(jìn)行數(shù)據(jù)過濾后,只將滿足過濾規(guī)則的連接請求數(shù)據(jù)輸出,并發(fā)送至第一服務(wù)器響應(yīng)對應(yīng)客戶端的請求進(jìn)行業(yè)務(wù)處理。
[0056]基于本發(fā)明實(shí)施例提出的一種防止惡意攻擊方法,對于請求參數(shù)過濾不符合規(guī)則的非法請求,直接在第二服務(wù)器返回錯誤信息,不直接進(jìn)入到第一服務(wù)器進(jìn)行參數(shù)合法化驗(yàn)證,可以減少第一服務(wù)器的負(fù)載壓力,防止部分惡意攻擊。
[0057]參見圖3,圖3示出了本發(fā)明實(shí)施例的防惡意攻擊方法的網(wǎng)絡(luò)系統(tǒng),包括至少一個客戶端11,代理服務(wù)器,21,服務(wù)器集群31,業(yè)務(wù)服務(wù)器41。
[0058]第二服務(wù)器21,用于接收客戶端發(fā)送的第一數(shù)據(jù),所述第一數(shù)據(jù)為連接請求數(shù)據(jù),第二服務(wù)器獲取第三服務(wù)器中的過濾規(guī)則并對所述第一數(shù)據(jù)進(jìn)行數(shù)據(jù)過濾。
[0059]具體地,第二服務(wù)器可以Nginx代理服務(wù)器,當(dāng)客戶端向服務(wù)器發(fā)送含有連接請求的數(shù)據(jù)時,在代理服務(wù)器獲取來自客戶端的連接請求數(shù)據(jù),Nginx代理服務(wù)器可以獲取到請求報文中的所有內(nèi)容,如客戶端的IP地址、請求鏈接、參數(shù)個數(shù)及參數(shù)名稱。例如,客戶端A和客戶端B同時登陸網(wǎng)站Z,用戶A的IP地址為IP-A,用戶B的IP地址為IP-B,那么,客戶端A和客戶端B訪問相同的請求和參數(shù),請求鏈接為http://xxx.test, com/check ?username = _name。Nginx代理服務(wù)器通過Lua腳本連接Redis服務(wù)器,讀取IP黑名單,由Nginx代理服務(wù)器進(jìn)一步對所述IP地址進(jìn)行檢測,如果在所述IP黑名單列表,則向客戶端返回錯誤信息,拒絕訪問,如果不在所述IP黑名單列表,則進(jìn)行下一步驗(yàn)證。Nginx代理服務(wù)器通過Lua腳本連接Redis服務(wù)器獲取參數(shù)規(guī)則,通過所述參數(shù)規(guī)則過濾器過濾請求連接和參數(shù),如果不符合所述參數(shù)規(guī)則,返回錯誤信息,如果符合所述參數(shù)規(guī)則,進(jìn)入業(yè)務(wù)服務(wù)器進(jìn)行業(yè)務(wù)處理,所述參數(shù)規(guī)則分布于Redis服務(wù)器集群。
[