本申請涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種異常訪問請求識別方法及裝置。
背景技術(shù):
異常訪問請求識別是各個互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)保護數(shù)據(jù)、防止惡意抓取的必要操作?,F(xiàn)有的異常訪問請求識別方法一般是通過訪問頻次限制來實現(xiàn)。通過為所有ip地址設(shè)置統(tǒng)一的訪問頻次閾值,在攜帶同一ip地址的訪問請求的訪問頻次超過該訪問頻次閾值時,則認為攜帶該ip地址的訪問請求為異常訪問請求,將該ip地址封禁,拒絕攜帶該ip地址的所有訪問請求,以達到數(shù)據(jù)防抓取的目的。
并且,考慮到異常訪問請求的訪問頻次相對較高,因此,現(xiàn)有技術(shù)設(shè)置的訪問頻次閾值是一個相對較高的值,但在實際應(yīng)用中,發(fā)明人發(fā)現(xiàn)現(xiàn)實情況也存在部分異常訪問請求為低頻訪問,在這種情況下,通過現(xiàn)有的訪問頻次閾值并不能識別出低頻的異常訪問請求。若為解決該問題而將訪問頻次閾值降低,會產(chǎn)生將真實用戶的正常數(shù)據(jù)訪問請求誤認為是異常訪問請求的問題,從而影響真實用戶的正常數(shù)據(jù)訪問操作。因此,現(xiàn)有的異常訪問請求識別方法無法識別出所有可能的異常訪問請求,從而出現(xiàn)無法全面有效地阻止來自異常訪問請求的數(shù)據(jù)抓取操作。
技術(shù)實現(xiàn)要素:
本申請解決的技術(shù)問題之一是,提供一種異常訪問請求識別方法及裝置,實現(xiàn)了準確、有效的識別異常訪問請求。
根據(jù)本申請一方面的一個實施例,提供了一種異常訪問請求識別方法,包括:
接收攜帶ip地址及訪問時間的訪問請求;
識別所述ip地址所屬的ip地址段;所述ip地址段包含至少一個ip地址;
將所述ip地址段及訪問時間輸入頻次閾值確定模型,得到所述模型輸出的訪問頻次閾值;其中,所述頻次閾值確定模型采用機器學(xué)習(xí)的方法訓(xùn)練獲得;
獲取所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次;
判斷所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次是否超過所確定的訪問頻次閾值;
若超過所述訪問頻次閾值,則識別出攜帶所述ip地址的訪問請求為異常訪問請求。
根據(jù)本申請另一方面的一個實施例,提供了一種異常訪問請求識別裝置,包括:
接收單元,用于接收攜帶ip地址及訪問時間的訪問請求;
地址段識別單元,用于識別所述ip地址所屬的ip地址段;所述ip地址段包含至少一個ip地址;
確定單元,用于將所述ip地址段及訪問時間輸入頻次閾值確定模型,得到所述模型輸出的訪問頻次閾值;其中,所述頻次閾值確定模型采用機器學(xué)習(xí)的方法訓(xùn)練獲得;
獲取單元,用于獲取所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次;
判斷單元,用于判斷所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次是否超過所確定的訪問頻次閾值;
異常訪問請求單元,用于在所述判斷單元判斷所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次超過所述訪問頻次閾值情況下,識別出攜帶所述ip地址的訪問請求為異常訪問請求。。
本申請實施例通過采用機器學(xué)習(xí)的方法訓(xùn)練頻次閾值確定模型,從而可以為不同ip地址確定不同時間段的訪問頻次閾值,實現(xiàn)了準確、有 效的識別異常訪問請求。其中,不但實現(xiàn)了低頻的異常訪問請求的識別,而且使得基于該訪問頻次閾值可以更加準確的識別出數(shù)據(jù)防抓取操作,有效提高了數(shù)據(jù)防抓取效果。
本領(lǐng)域普通技術(shù)人員將了解,雖然下面的詳細說明將參考圖示實施例、附圖進行,但本申請并不僅限于這些實施例。而是,本申請的范圍是廣泛的,且意在僅通過后附的權(quán)利要求限定本申請的范圍。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1是根據(jù)本申請一個實施例的在異常訪問請求識別過程中采用機器學(xué)習(xí)方法訓(xùn)練頻次閾值確定模型的示意圖。
圖2是根據(jù)本申請一個實施例的單一ip訪問頻次示意圖。
圖3是根據(jù)本申請一個實施例的同一網(wǎng)段ip訪問頻次示意圖。
圖4是根據(jù)本申請一個實施例的異常訪問請求識別方法的流程圖。
圖5是根據(jù)本申請一個實施例的異常訪問請求識別裝置的結(jié)構(gòu)示意圖。
本領(lǐng)域普通技術(shù)人員將了解,雖然下面的詳細說明將參考圖示實施例、附圖進行,但本申請并不僅限于這些實施例。而是,本申請的范圍是廣泛的,且意在僅通過后附的權(quán)利要求限定本申請的范圍。
具體實施方式
在更加詳細地討論示例性實施例之前應(yīng)當(dāng)提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當(dāng)其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
計算機設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但 不限于電腦、智能手機、pda等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計算(cloudcomputing)的由大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。其中,所述計算機設(shè)備可單獨運行來實現(xiàn)本申請,也可接入網(wǎng)絡(luò)并通過與網(wǎng)絡(luò)中的其他計算機設(shè)備的交互操作來實現(xiàn)本申請。其中,所述計算機設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。
需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的計算機設(shè)備或網(wǎng)絡(luò)如可適用于本申請,也應(yīng)包含在本申請保護范圍以內(nèi),并以引用方式包含于此。
后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實施。當(dāng)用軟件、固件、中間件或微代碼來實施時,用以實施必要任務(wù)的程序代碼或代碼段可以被存儲在機器或計算機可讀介質(zhì)(比如存儲介質(zhì))中。(一個或多個)處理器可以實施必要的任務(wù)。
這里所公開的具體結(jié)構(gòu)和功能細節(jié)僅僅是代表性的,并且是用于描述本申請的示例性實施例的目的。但是本申請可以通過許多替換形式來具體實現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實施例。
應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個單元與另一個單元進行區(qū)分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個或更多所列出的相關(guān)聯(lián)項目的任意和所有組合。
應(yīng)當(dāng)理解的是,當(dāng)一個單元被稱為“連接”或“耦合”到另一單元時,其可以直接連接或耦合到所述另一單元,或者可以存在中間單元。與此相對,當(dāng)一個單元被稱為“直接連接”或“直接耦合”到另一單元時,則不存在中間單元。應(yīng)當(dāng)按照類似的方式來解釋被用于描述單元之 間的關(guān)系的其他詞語(例如“處于...之間”相比于“直接處于...之間”,“與...鄰近”相比于“與...直接鄰近”等等)。
這里所使用的術(shù)語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
還應(yīng)當(dāng)提到的是,在一些替換實現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執(zhí)行或者有時可以按照相反的順序來執(zhí)行。
下面結(jié)合附圖對本申請的技術(shù)方案作進一步詳細描述。
現(xiàn)有的異常訪問請求識別方法由于針對所有ip地址設(shè)置統(tǒng)一的訪問頻次閾值,導(dǎo)致無法識別出低于所述訪問頻次閾值的低頻的異常訪問請求,也就是無法實現(xiàn)防止低頻數(shù)據(jù)抓取操作。針對該問題,本申請實施例可以針對每一ip地址確定與該ip地址對應(yīng)的訪問頻次閾值,且考慮到同一ip地址在不同時間段的訪問頻次不同,本申請實施例可進一步為每一ip地址確定不同時間段對應(yīng)的訪問頻次閾值。因此,本申請實施例針對不同用戶的不同屬性(不同時間段訪問頻次不同)確定個性化的訪問頻次閾值,避免了所有ip地址對應(yīng)統(tǒng)一訪問頻次閾值存在的無法實現(xiàn)低頻數(shù)據(jù)防抓取操作的問題。
本申請實施例提供的為每一ip地址確定不同時間段對應(yīng)的訪問頻次閾值的方法可以為:
采用機器學(xué)習(xí)的方法訓(xùn)練獲得頻次閾值確定模型,該頻次閾值確定模型在輸入ip地址及訪問時間的情況下,輸出與該ip地址及訪問時間對應(yīng)的訪問頻次閾值。也就是該頻次閾值確定模型可以為每一ip地址確定在預(yù)設(shè)不同時間段的訪問頻次閾值。所述時間段為預(yù)先劃分的時間段,例如可將一天的時間劃分為連續(xù)的多個時間段,每個時間段可以為:1分 鐘、2分鐘或5分鐘等等。
本申請實施例所述的頻次閾值確定模型可以在異常訪問請求識別過程中不斷進行機器學(xué)習(xí)。在異常訪問請求識別過程中采用機器學(xué)習(xí)方法訓(xùn)練所述頻次閾值確定模型的示意圖如圖1中所示,在接收到攜帶ip地址及訪問時間的訪問請求后,通過頻次閾值確定模型確定與該ip地址及訪問時間對應(yīng)的訪問頻次閾值,依據(jù)該訪問頻次閾值檢查該訪問請求在預(yù)設(shè)時長內(nèi)的訪問頻次是否超過該訪問頻次閾值,得到訪問頻次檢查結(jié)果。收集該訪問請求的相關(guān)信息,包括訪問請求的ip地址、訪問時間、訪問頻次檢查結(jié)果。同時,可對訪問頻次檢查結(jié)果為超過訪問頻次閾值的訪問請求進行驗證碼驗證,得到驗證碼驗證結(jié)果,收集該驗證碼驗證結(jié)果相關(guān)信息,包括驗證碼驗證成功次數(shù)。將收集的數(shù)據(jù)作為頻次閾值確定模型的訓(xùn)練數(shù)據(jù)輸入頻次確定模型進行機器學(xué)習(xí)。
其中,初始采用機器學(xué)習(xí)的方法訓(xùn)練該頻次閾值確定模型是利用歷史數(shù)據(jù)進行訓(xùn)練,具體實施例如下:
首先,獲取攜帶ip地址及訪問時間的歷史訪問請求作為訓(xùn)練頻次閾值確定模型的采樣數(shù)據(jù)。
其中,所述歷史訪問請求例如可以為15天、一個月或三個月等等范圍內(nèi)的訪問請求。獲取的所述歷史訪問請求包括但不限于:ip地址、訪問時間、驗證碼成功驗證次數(shù)。
驗證碼成功驗證次數(shù)是指攜帶ip地址的訪問請求的訪問頻次超過預(yù)設(shè)的訪問頻次閾值時,采用驗證碼驗證該ip地址是人為操作的次數(shù)。具體的驗證碼驗證方法將在下面實施例中介紹。
之后,將采樣數(shù)據(jù)的ip地址進行聚合,并為聚合后的ip地址設(shè)置所屬的ip地址段。其中,將采樣數(shù)據(jù)的ip地址聚合包括如下操作:
第一步,按ip地址的相似性聚合,即,將所述采樣數(shù)據(jù)的所有ip地址中同網(wǎng)段的ip地址聚合。一種實施方式是判斷ip地址的前三個點分十進制數(shù)字是否相同,例如a.b.c.10和a.b.c.20可以認為在同一個網(wǎng)段的ip地址。
第二步,將訪問時間與訪問頻次對應(yīng)關(guān)系曲線相近度小于規(guī)定相近 度閾值的一組同網(wǎng)段ip地址進行聚合。
一般同網(wǎng)段多個ip地址輪流訪問實現(xiàn)數(shù)據(jù)抓取,這些ip地址的訪問時間的分布明顯不同,因此針對單獨一個ip地址其訪問曲線在時間上是斷續(xù)的如圖2中所示,而同網(wǎng)段的多個ip地址的曲線可以實現(xiàn)連續(xù)如圖3中所示。本步驟是將多機器協(xié)同完成數(shù)據(jù)抓取的多個同網(wǎng)段的ip地址聚合。
所述訪問時間與訪問頻次對應(yīng)關(guān)系曲線的相近度可采用余弦相似度算法實現(xiàn)。也就是,聚合后的一組ip地址包含訪問時間與訪問頻次對應(yīng)關(guān)系曲線相近度低于規(guī)定相近度閾值的一組ip地址。以24小時對應(yīng)的訪問頻次曲線為例,假設(shè)多個攜帶不同ip地址(均在同一個網(wǎng)段),且在24小時內(nèi)的訪問頻次曲線兩兩之間的相近度閾值均低于規(guī)定相近度閾值,則將該多個ip地址聚合為一組ip地址。并為該聚合后的一組ip地址設(shè)置所屬的ip地址段,例如,聚合后的一組ip地址為一個子網(wǎng)內(nèi)的一組ip地址,包括a.b.c.1,a.b.c.2,a.b.c.3三個ip地址,則為該聚合后的一組ip地址設(shè)置所屬的ip地址段為a.b.c.x。a.b.c.1,a.b.c.2,a.b.c.3三個ip地址對應(yīng)的采樣數(shù)據(jù)即為聚合后的ip地址段a.b.c.x對應(yīng)的采樣數(shù)據(jù)。
可以理解的是,聚合后的一個ip地址段包含至少一個ip地址。
然后,以聚合后的ip地址段對應(yīng)的采樣數(shù)據(jù)訓(xùn)練所述頻次閾值確定模型。
由于需要為每一ip地址確定不同時間段對應(yīng)的訪問頻次閾值,因此,需要將聚合后的ip地址段對應(yīng)的采樣數(shù)據(jù)按時間段進行劃分,如前文中所述,所述時間段為預(yù)先劃分的時間段,例如可將一天的時間劃分為連續(xù)的多個時間段,每個時間段可以為:1分鐘、2分鐘或5分鐘等等。則可將聚合后的ip地址段對應(yīng)的采樣數(shù)據(jù)劃分為不同的時間段的采樣數(shù)據(jù)。針對不同時間段的采樣數(shù)據(jù)進行頻次閾值確定模型的訓(xùn)練。
具體的,針對某一時間段內(nèi)的采樣數(shù)據(jù),提取該時間段的采樣數(shù)據(jù)的ip地址段及訪問時間作為待訓(xùn)練模型的輸入,將訪問頻次閾值作為該模型的輸出。另外,還可將驗證碼成功驗證次數(shù)作為輸入,從而根據(jù)該 驗證碼成功驗證次數(shù)調(diào)整各ip地址段在各時間段的訪問頻次閾值。最終得到的頻次閾值確定模型可在輸入聚合后的ip地址段及訪問時間情況下,輸出對應(yīng)的訪問頻次閾值。這樣,在不同的時間段針對不同的ip地址段可確定不同的訪問頻次閾值,實現(xiàn)了為用戶確定個性化的訪問頻次閾值,從而可以在不損害正常用戶體驗的情況下有效提高數(shù)據(jù)防抓取效果。
圖4是根據(jù)本申請一個實施例的異常訪問請求識別方法的流程圖,該方法是基于頻次閾值確定模型來確定ip地址在當(dāng)前訪問時間對應(yīng)的訪問頻次閾值,從而基于該確定的訪問頻次閾值進行異常訪問請求的識別。所述頻次閾值確定模型為上面所述的采用機器學(xué)習(xí)的方法訓(xùn)練獲得,該方法主要包括如下步驟s410~s470:
s410、接收攜帶ip地址及訪問時間的訪問請求。
s420、識別所述ip地址所屬的ip地址段。
如前文中所述,在訓(xùn)練頻次閾值確定模型時,將ip地址進行聚類,并為聚類后的ip設(shè)置有所屬的ip地址段,每一ip地址段包含至少一個ip地址,則根據(jù)該設(shè)置可識別所述ip地址所屬的ip地址段。例如,所述ip地址為a.b.c.1,所屬的ip地址段為a.b.c.x。
s430、將所述ip地址段及訪問時間輸入頻次閾值確定模型,得到所述模型輸出的訪問頻次閾值。也就是得到所述ip地址段在所述訪問時間的訪問頻次閾值。假設(shè)所述ip地址段為a.b.c.x,訪問時間為2:03:04,在輸入頻次閾值確定模型后,輸出的訪問頻次閾值為250次。
s440、獲取所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次。
所述預(yù)設(shè)時長可與訓(xùn)練所述頻次閾值確定模型時劃分的時間段的時長相同。假如,訓(xùn)練頻次閾值確定模型時所劃分的時間段為1分鐘,則獲取訪問請求的訪問頻次需記錄1分鐘內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次;若訓(xùn)練頻次閾值確定模型時所劃分的時間段為2分鐘,則獲取訪問請求的訪問頻次需記錄2分鐘內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次。
所述訪問時間對應(yīng)的預(yù)設(shè)時長可采用如下任一方式確定:
第一種方式,將一天24小時劃分為所述預(yù)設(shè)時長的時間段,例如,從00:00:00開始每2分鐘為一個時間段,則可判斷所述訪問時間對應(yīng)的時間段,假設(shè)所述訪問時間為2:03:04,則可確定所屬的時間段為2:02:00~2:04:00。此種情況,只有在所述訪問時間為每一時間段的結(jié)束時間點時才執(zhí)行該獲取訪問頻次的操作。也就是此種情況下,在獲取訪問頻次前,還包括判斷所述訪問時間是否為任一時間段的結(jié)束時間點的步驟,且在所述訪問時間是任一時間段的結(jié)束時間點的情況下,再執(zhí)行獲取訪問頻次的操作。
第二種方式,從所述訪問時間往前預(yù)設(shè)時長所確定的時間段,例如,所述訪問時間為2:03:04,預(yù)設(shè)時長為2分鐘,則獲取從2:03:04開始往前2分鐘內(nèi)的攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次,也就是2:01:04~2:03:04這段時間內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次。
另外,由于同一ip地址段的多個ip地址輪流訪問協(xié)作實現(xiàn)數(shù)據(jù)抓取,因此本申請實施例獲取所述ip地址所屬的ip地址段包含的所有ip地址的訪問請求的訪問頻次。例如,所述ip地址所屬的ip地址段為a.b.c.x,該ip地址段包括如下ip地址:a.b.c.1,a.b.c.2,a.b.c.3。假設(shè)在2:03:04接收到攜帶a.b.c.1的訪問請求的訪問頻次為60次,預(yù)設(shè)時長為2分鐘,則獲取2:01:04~2:03:04這段時間內(nèi)a.b.c.1、a.b.c.2及a.b.c.3的訪問頻次之和,如果在該時間段內(nèi)接收到攜帶a.b.c.2的訪問請求的訪問頻次為80次,攜帶a.b.c.3的訪問請求的訪問頻次為120次,則獲取2:01:04~2:03:04這段時間內(nèi)ip地址段a.b.c.x包含的所有ip地址的訪問請求的訪問頻次為260=60+80+120次。
s450、判斷所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次是否超過所確定的訪問頻次閾值。
即,判斷步驟s440中獲取的攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次是否超過步驟s430中頻次閾值確定模型輸出的訪問頻次閾值,如上面實施例中所述,假如頻次閾值確定模型輸出的訪問頻次 閾值為250,而步驟s440中獲取的訪問頻次閾值為260,則可判斷出所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次超過所確定的訪問頻次閾值。
若超過所述訪問頻次閾值,則執(zhí)行步驟s460;若未超過所述訪問頻次閾值,則執(zhí)行步驟s470。
s460、識別出攜帶所述ip地址的訪問請求為異常訪問請求。
對于識別出的異常訪問請求可采取如下方式實現(xiàn)防止該異常訪問請求的數(shù)據(jù)抓取操作:對攜帶所述ip地址的訪問請求采用驗證碼進行驗證,同理,對攜帶所述ip地址所屬的ip地址段包含的所有ip地址的訪問請求采用驗證碼進行驗證直到驗證成功。也就是對該ip地址所屬的ip地址段包含的所有ip地址的訪問請求采用驗證碼進行驗證,直到驗證成功。具體的針對一個ip采用驗證碼進行驗證的方法包括:
提供驗證碼給發(fā)送攜帶所述ip地址的訪問請求的每一用戶;
接收每一用戶輸入的驗證碼;
比較每一用戶輸入的驗證碼與提供給所述用戶的驗證碼是否一致;
若用戶輸入的驗證碼與提供給所述用戶的驗證碼一致,則驗證碼驗證成功,進入步驟s470,否則重復(fù)執(zhí)行步驟s460。
需要說明的是,由于使用同一ip地址的用戶很多,若其中一個用戶驗證碼驗證成功,則即可認為該ip地址驗證成功,則攜帶該ip地址的所有訪問請求即被認為非異常訪問請求。在同一ip地址段的所有ip地址中任一ip地址驗證成功,則可認為該ip地址段包含的所有ip地址的訪問請求亦非異常訪問請求。
s470、允許所述訪問請求的訪問操作。
在所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次未超過所確定的訪問頻次閾值情況下,認為該訪問請求為非異常訪問請求,則允許該訪問請求的訪問操作。
同時,在驗證成功情況下,說明該攜帶ip地址的訪問請求為人的操作,執(zhí)行數(shù)據(jù)抓取的可能性較小,則允許該訪問請求的訪問操作。
本申請實施例通過采用機器學(xué)習(xí)的方法訓(xùn)練頻次閾值確定模型,從 而可以為不同ip地址確定不同時間段的訪問頻次閾值,實現(xiàn)了準確、有效的識別異常訪問請求。其中,不但實現(xiàn)了低頻的異常訪問請求的識別,而且使得基于該訪問頻次閾值可以更加準確的識別出數(shù)據(jù)防抓取操作,有效提高了數(shù)據(jù)防抓取效果。
另外,由于利用頻次閾值確定模型可以針對不同ip地址確定與該ip地址匹配的訪問頻次閾值,有效減少了由于訪問頻次閾值設(shè)置不準確帶來的驗證碼驗證操作的次數(shù)過多而影響用戶正常操作的問題。
本申請實施例還提供一種與上述異常訪問請求識別方法對應(yīng)的異常訪問請求識別裝置,如圖5中所示為所述裝置結(jié)構(gòu)示意圖,該裝置是基于頻次閾值確定模型來確定ip在當(dāng)前訪問時間對應(yīng)的訪問頻次閾值,從而基于該確定的訪問頻次閾值進行異常訪問請求識別。所述頻次閾值確定模型為上面所述的采用機器學(xué)習(xí)的方法訓(xùn)練獲得,所述異常訪問請求的識別裝置包括:
接收單元510,用于接收攜帶ip地址及訪問時間的訪問請求;
地址段識別單元520,用于識別所述ip地址所屬的ip地址段;所述ip地址段包含至少一個ip地址;
確定單元530,用于將所述ip地址段及訪問時間輸入頻次閾值確定模型,得到所述模型輸出的訪問頻次閾值;其中,所述頻次閾值確定模型采用機器學(xué)習(xí)的方法訓(xùn)練獲得;
獲取單元540,用于獲取所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次;
判斷單元550,用于判斷所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次是否超過所確定的訪問頻次閾值;
異常訪問請求單元560,用于在所述判斷單元判斷所述訪問時間對應(yīng)的預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的ip地址的訪問請求的訪問頻次超過所述訪問頻次閾值情況下,識別出攜帶所述ip地址的訪問請求為異常訪問請求。
所述裝置還包括如下單元用于采用機器學(xué)習(xí)的方法訓(xùn)練獲得所述頻次 閾值確定模型包括:
采用數(shù)據(jù)獲取單元570,用于獲取預(yù)設(shè)時長范圍內(nèi)歷史接收的攜帶ip地址的訪問請求信息作為訓(xùn)練頻次閾值確定模型的采樣數(shù)據(jù);
聚合單元580,用于將采樣數(shù)據(jù)按ip地址聚合,得到聚合后的ip地址段對應(yīng)的采樣數(shù)據(jù);
訓(xùn)練單元590,用于以聚合后的ip地址段對應(yīng)的采樣數(shù)據(jù)按照預(yù)設(shè)時間段進行劃分來訓(xùn)練所述頻次閾值確定模型。
所述聚合單元580被配置為:
將所述采樣數(shù)據(jù)的所有ip地址中同網(wǎng)段的ip地址聚合;
將訪問時間與訪問頻次對應(yīng)關(guān)系曲線相近度小于規(guī)定相近度閾值的一組同網(wǎng)段ip地址進行聚合。
所述獲取單元540被配置為:
獲取從所述訪問時間往前預(yù)設(shè)時長內(nèi)攜帶所述ip地址段包含的所有ip地址的訪問請求的訪問頻次。
所述裝置還包括:
驗證單元5010,用于在識別出攜帶所述ip地址的訪問請求為異常訪問請求情況下,對攜帶所述ip地址所屬的ip地址段包含的所有ip地址的訪問請求采用驗證碼進行驗證直到驗證成功。
綜上所述,本申請實施例通過采用機器學(xué)習(xí)的方法訓(xùn)練頻次閾值確定模型,從而可以為不同ip地址確定不同時間段的訪問頻次閾值,實現(xiàn)了準確、有效的識別異常訪問請求。其中,不但實現(xiàn)了低頻的異常訪問請求的識別,而且使得基于該訪問頻次閾值可以更加準確的識別出數(shù)據(jù)防抓取操作,有效提高了數(shù)據(jù)防抓取效果。
另外,由于利用頻次閾值確定模型可以針對不同ip地址確定與該ip地址匹配的訪問頻次閾值,有效減少了由于訪問頻次閾值設(shè)置不準確帶來的驗證碼驗證操作的次數(shù)過多而影響用戶正常操作的問題。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,可采用專用集成電路(asic)、通用目的計算機或任何其他類似硬件設(shè)備來實現(xiàn)。在一個實施例中,本申請的軟件程序可以通過處理器執(zhí) 行以實現(xiàn)上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲到計算機可讀記錄介質(zhì)中,例如,ram存儲器,磁或光驅(qū)動器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實現(xiàn),例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
另外,本申請的一部分可被應(yīng)用為計算機程序產(chǎn)品,例如計算機程序指令,當(dāng)其被計算機執(zhí)行時,通過該計算機的操作,可以調(diào)用或提供根據(jù)本申請的方法和/或技術(shù)方案。而調(diào)用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質(zhì)中,和/或通過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運行的計算機設(shè)備的工作存儲器中。在此,根據(jù)本申請的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計算機程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據(jù)本申請的多個實施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實施例的細節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本申請。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。