本發明涉及計算機及網絡技術領域,特別是涉及一種限制訪問網絡接口的方法、裝置及電子設備。
背景技術:
隨著計算機和網絡技術的迅速發展,威脅網絡安全的事件頻繁地發生并且后果日趨嚴重。其中,網絡接口的攻擊主要是通過攻擊數據庫和服務器寬帶寬,使得服務器不能進行安全訪問,例如,讓數據庫并發過載,導致正常的請求超時,從而服務器無法訪問該請求,或者增加服務器的訪問量,使得服務器寬帶寬不夠用,最終導致服務器不堪重負而崩潰。
現有的防止網絡接口被攻擊的方法中,在網絡接口的訪問量上做出限制,如果超出了限制的訪問量則不繼續處理超出了限制訪問量的其他訪問請求,從而使得服務器能安全的訪問在限制訪問量以內的訪問請求,其中,該限制是由sql語言(structuredquerylanguage,結構化查詢語言)的限制limit關鍵詞實現。
但是,在現有的方法中,雖然在網絡接口做了訪問量限制,不會存在大數據的訪問量出現數據庫宕機的情況,但是對于一次雖然數據量可能不大,卻有服務器腳本攻擊服務器的情況,還是會導致服務器存在安全隱患。
技術實現要素:
本發明實施例的目的在于提供一種限制訪問網絡接口的方法、裝置及電子設備,以確保服務器的安全訪問,減少服務器存在的安全隱患,防止網絡接口被攻擊帶來的不利后果。具體技術方案如下:
本發明實施例公開了一種限制訪問網絡接口的方法,所述方法包括:
獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷所述訪問量是否大于預設訪問量;
當所述訪問量大于所述預設訪問量時,獲取所述客戶端的互聯網協議地址,并限制所述互聯網協議地址對所述網絡接口進行訪問。
可選的,所述獲取客戶端在預設時間內訪問網絡接口的訪問量之前,所述的方法還包括:
在所述網絡接口中構造黑名單,并保存所述黑名單;
判斷所述黑名單中是否包括所述客戶端的互聯網協議地址。
可選的,所述在所述網絡接口中構造黑名單,包括:
在所述網絡接口中通過超文本預處理語言構造所述黑名單。
可選的,所述判斷所述黑名單中是否包括所述客戶端的互聯網協議地址之后,所述的方法還包括:
當判斷所述黑名單中包括所述客戶端的互聯網協議地址時,限制所述互聯網協議地址對所述網絡接口進行訪問。
可選的,所述當所述訪問量大于所述預設訪問量時,獲取所述客戶端的互聯網協議地址,并限制所述互聯網協議地址對所述網絡接口進行訪問,包括:
當所述訪問量大于所述預設訪問量時,獲取所述客戶端的互聯網協議地址,并將所述互聯網協議地址加入所述黑名單;
限制所述黑名單中的所述互聯網協議地址對所述網絡接口進行訪問。
本發明實施例還公開了一種限制訪問網絡接口的裝置,所述裝置包括:
獲取模塊,用于獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷所述訪問量是否大于預設訪問量;
處理模塊,用于當所述訪問量大于所述預設訪問量時,獲取所述客戶端的互聯網協議地址,并限制所述互聯網協議地址對所述網絡接口進行訪問。
可選的,所述的裝置還包括:
構造模塊,用于在所述網絡接口中構造黑名單,并保存所述黑名單;
判斷模塊,用于判斷所述黑名單中是否包括所述客戶端的互聯網協議地址。
可選的,所述構造模塊,包括:
構造子模塊,用于在所述網絡接口中通過超文本預處理語言構造所述黑名單。
本發明實施例還公開了一種電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
存儲器,用于存放計算機程序;
處理器,用于執行存儲器上所存放的程序時,實現上述的一種限制訪問網絡接口的方法步驟。
本發明實施例還公開了一種計算機可讀存儲介質,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序被處理器執行時實現上述的一種限制訪問網絡接口的方法步驟。
本發明實施例提供的一種限制訪問網絡接口的方法、裝置及電子設備,先獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷所述訪問量是否大于預設訪問量;然后當所述訪問量大于所述預設訪問量時,獲取所述客戶端的互聯網協議地址,并限制所述互聯網協議地址對所述網絡接口進行訪問。這種將互聯網協議地址高頻訪問某個網絡接口視為接口攻擊,然后對該互聯網協議地址做一個拒絕訪問限制,從而確保了服務器的安全訪問,減少了服務器存在的安全隱患,防止了接口攻擊帶來的不利后果。當然,實施本發明的任一產品或方法必不一定需要同時達到以上所述的所有優點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種限制訪問網絡接口的方法的流程示意圖;
圖2為本發明實施例提供的一種限制訪問網絡接口的裝置的結構示意圖;
圖3為本發明實施例提供的一種電子設備的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
參見圖1,圖1為本發明實施例提供的一種限制訪問網絡接口的方法的流程示意圖,包括如下步驟:
s101,獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷訪問量是否大于預設訪問量。
具體的,通過服務器獲取客戶端在預設時間內訪問網絡接口的訪問量,即獲取客戶端在預設時間內訪問網絡接口的訪問次數,通常,在預設的時間內同一個客戶端對同一個網絡接口的訪問次數越多,則該客戶端攻擊該網絡接口的可能性越大,因此,判斷訪問量是否大于預設訪問量,即通過判斷客戶端在預設時間內累積訪問網絡接口的次數是否大于預設的訪問次數,來判斷該客戶端是否對該網絡接口有攻擊的威脅,從而提高服務器的安全訪問。
s102,當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問。
具體的,本發明是將同一個互聯網協議地址高頻訪問某個網絡接口視為接口攻擊,高頻訪問即多次訪問,也就是訪問次數超過一定的范圍,該范圍可以根據實際情況來預設。當客戶端在預設時間內訪問網絡接口的訪問量大于預設訪問量時,則該客戶端被視為對該網絡接口有攻擊,由于該客戶端是通過其互聯網協議地址對該網絡接口進行訪問的,因此,先通過服務器獲取該客戶端的互聯網協議地址,然后通過服務器腳本語言構造一個類,用于保存所有對網絡接口有攻擊的互聯網協議地址,最后,通過限制這個類中的所有互聯網協議地址對網絡接口進行訪問,即服務器不允許該類中的任何一個互聯網協議地址再對該網絡接口進行訪問,這里,限制可以是永久性的限制,也可以是階段性的限制,具體根據實際情況來設置。通過限制互聯網協議地址對網絡接口進行訪問,從而確保了服務器的安全訪問,減少了服務器存在的安全隱患,防止了接口攻擊帶來的不利后果。
可見,通過本發明實施例提供的一種限制訪問網絡接口的方法,先獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷訪問量是否大于預設訪問量;然后當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問。這種將互聯網協議地址高頻訪問某個網絡接口視為接口攻擊,然后對該互聯網協議地址做一個拒絕訪問限制,從而確保了服務器的安全訪問,減少了服務器存在的安全隱患,防止了接口攻擊帶來的不利后果。
在本發明一個可選的實施例中,在獲取客戶端在預設時間內訪問網絡接口的訪問量之前,本發明的方法還包括:
在網絡接口中構造黑名單,并保存黑名單;
具體的,本發明實施例在網絡接口中構造黑名單,是通過服務器腳本語言設計一個和符合腳本語言的類,這個類的主要作用是保存黑名單。其中,所構造的黑名單用于保存所有對網絡接口有攻擊的互聯網協議地址,即相當于將黑名單看做是一個存儲空間,將這些互聯網協議地址的相關信息(如客戶端的位置信息、客戶端的用戶名等)按順序添加到黑名單這個存儲空間中,從而限制這些互聯網協議地址對網絡接口再次進行訪問,將對網絡接口有攻擊的互聯網協議地址加入黑名單,可以直接判斷出該互聯網協議地址對網絡接口有攻擊,而不需要每次都去判斷該互聯網協議地址的訪問量是否大于預設訪問量,得到該互聯網協議地址是否對網絡接口具有攻擊,這樣不僅方便服務器的快速準確的對有攻擊的互聯網協議地址的判斷,而且確保了服務器的安全訪問。另外,在黑名單中也可以將互聯網協議地址進行分類,例如,根據互聯網協議地址地址的前綴部分和后綴部分將互聯網協議地址地址分類,更方便在黑名單中快速查找互聯網協議地址地址。這里,服務器腳本語言可以是c語言、c++語言、python(一種面向對象、直譯式計算機程序設計語言)、c#語言、javascript(一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言)、php(hypertextpreprocessor,超文本預處理語言)、jsp(javaserverpages)等。
判斷黑名單中是否包括客戶端的互聯網協議地址。
這里,在獲取客戶端在預設時間內訪問網絡接口的訪問量之前,判斷黑名單的列表中是否包括客戶端的互聯網協議地址,即該客戶端的互聯網協議地址是否在黑名單列表中,以便確定該互聯網協議地址是否是已經被限制,從而快速準確找出有攻擊的互聯網協議地址。
在網絡接口中構造黑名單,包括:
在網絡接口中通過超文本預處理語言構造黑名單。
超文本預處理語言是一種html(hypertextmarkuplanguage,超文本標記語言)內嵌式的語言,是一種在服務器端執行的嵌入html文檔的腳本語言。由于php獨特的語法混合了c、java、perl(practicalextractionandreportlanguage,實用報表提取語言)以及php自創的語法。它可以比cgi(commongatewayinterface,通用網關接口)或者perl更快速地執行動態網頁。用php做出的動態頁面與其他的編程語言相比,php是將程序嵌入到html文檔中去執行,執行效率比完全生成html標記的cgi要高許多;php還可以執行編譯后代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
判斷黑名單中是否包括客戶端的互聯網協議地址之后,該方法還包括:
當判斷黑名單中包括客戶端的互聯網協議地址時,限制互聯網協議地址對網絡接口進行訪問。
具體的,在獲取客戶端在預設時間內訪問網絡接口的訪問量之前,先判斷該客戶端的互聯網協議地址是否已經被加入到黑名單的列表中,如果黑名單列表中中有該客戶端的互聯網協議地址,則該互聯網協議地址已經是被認為是對網絡接口有攻擊的,即該互聯網協議地址已經被限制對網絡接口進行訪問,這樣就不用再獲取客戶端在預設時間內訪問網絡接口的訪問量,不僅減少了計算機的處理過程,而且快速準確的判斷出攻擊對象,從而確保了服務器的安全訪問。
在本發明一個可選的實施例中,當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問,包括:
當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并將互聯網協議地址加入黑名單;
限制黑名單中的互聯網協議地址對網絡接口進行訪問。
具體的,對于按順序加入黑名單的互聯網協議地址的情況,當訪問量大于預設訪問量時,服務器獲取客戶端的互聯網協議地址,并將該互聯網協議地址添加到該黑名單中上一個已添加的互聯網協議地址之后;對于黑名單中將互聯網協議地址進行分類的情況,當訪問量大于預設訪問量時,服務器獲取客戶端的互聯網協議地址,先在該黑名單中找到與將該互聯網協議地址為同一類別的地址,然后將該互聯網協議地址添加到該類別中。由于本發明是將同一個互聯網協議地址高頻訪問某個網絡接口視為接口攻擊,因此,根據實際情況,先設置互聯網協議地址高頻訪問某個網絡的訪問量為預設訪問量,當一個互聯網協議地址的訪問量大于預設訪問量時,表明該互聯網協議地址對該網絡接口有攻擊,那么,將對網絡接口有攻擊的互聯網協議地址加入黑名單,限制黑名單中的互聯網協議地址對網絡接口進行訪問,不僅確保了服務器的安全訪問,減少了服務器存在的安全隱患,防止了接口攻擊帶來的不利后果,而且,對黑名單中的互聯網協議地址無需再次判斷其訪問量,而是直接限制該互聯網協議地址對網絡接口進行訪問,極大的提高了服務器的安全訪問。
參見圖2,圖2為本發明實施例提供的一種限制訪問網絡接口的裝置的結構示意圖,包括如下模塊:
獲取模塊201,用于獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷訪問量是否大于預設訪問量;
處理模塊202,用于當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問。
進一步的,所述的裝置還包括:
構造模塊,用于在網絡接口中構造黑名單,并保存黑名單;
判斷模塊,用于判斷黑名單中是否包括客戶端的互聯網協議地址。
進一步的,構造模塊,包括:
構造子模塊,用于在網絡接口中通過超文本預處理語言構造黑名單。
進一步的,所述的裝置還包括:
限制模塊,用于當判斷黑名單中包括客戶端的互聯網協議地址時,限制互聯網協議地址對網絡接口進行訪問。
進一步的,處理模塊202,包括:
第一處理子模塊,用于當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并將互聯網協議地址加入黑名單;
第二處理子模塊,用于限制黑名單中的互聯網協議地址對網絡接口進行訪問。
可見,通過本發明實施例提供的一種限制訪問網絡接口的裝置,先通過模塊獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷訪問量是否大于預設訪問量;然后處理模塊中當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問。這種將互聯網協議地址高頻訪問某個網絡接口視為接口攻擊,然后對該互聯網協議地址做一個拒絕訪問限制,從而確保了服務器的安全訪問,減少服務器存在的安全隱患,防止了接口攻擊帶來的不利后果。
本發明實施例還提供了一種電子設備,如圖3所示,包括處理器301、通信接口302、存儲器303和通信總線304,其中,處理器301,通信接口302,存儲器303通過通信總線304完成相互間的通信,
存儲器303,用于存放計算機程序;
處理器301,用于執行存儲器303上所存放的程序時,實現如下步驟:
獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷訪問量是否大于預設訪問量;
當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問。
上述電子設備提到的通信總線可以是外設部件互連標準(peripheralcomponentinterconnect,簡稱pci)總線或擴展工業標準結構(extendedindustrystandardarchitecture,簡稱eisa)總線等。該通信總線可以分為地址總線、數據總線、控制總線等。為便于表示,圖中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
通信接口用于上述電子設備與其他設備之間的通信。
本發明實施例還提供了一種計算機可讀存儲介質,計算機可讀存儲介質內存儲有計算機程序,計算機程序被處理器執行時實現如下步驟:
獲取客戶端在預設時間內訪問網絡接口的訪問量,并判斷訪問量是否大于預設訪問量;
當訪問量大于預設訪問量時,獲取客戶端的互聯網協議地址,并限制互聯網協議地址對網絡接口進行訪問。
存儲器可以包括隨機存取存儲器(randomaccessmemory,簡稱ram),也可以包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。可選的,存儲器還可以是至少一個位于遠離前述處理器的存儲裝置。
上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,簡稱cpu)、網絡處理器(networkprocessor,簡稱np)等;還可以是數字信號處理器(digitalsignalprocessing,簡稱dsp)、專用集成電路(applicationspecificintegratedcircuit,簡稱asic)、現場可編程門陣列(field-programmablegatearray,簡稱fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置、電子設備、計算機可讀存儲介質實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。