本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種電子設(shè)備及信息處理方法。
背景技術(shù):
在互聯(lián)網(wǎng)應(yīng)用中,利用緩存也是個(gè)很常見的需求。賬號(hào)中心在用戶登錄的時(shí)候,會(huì)將用戶的賬號(hào)和密碼保存在緩存中。在緩存的時(shí)候上一般都是使用內(nèi)存作為緩存的存儲(chǔ)介質(zhì),因?yàn)閮?nèi)存的讀取速度遠(yuǎn)遠(yuǎn)超過硬盤的讀取速度。在現(xiàn)有技術(shù)中在利用緩存的時(shí)候通常采用的方式是當(dāng)用戶第一次請(qǐng)求的時(shí)候就將通過查詢數(shù)據(jù)庫將數(shù)據(jù)加載到緩存中,在用戶再次請(qǐng)求的時(shí)候就從緩存中讀出返回給用戶。但是存在的問題是:在業(yè)務(wù)應(yīng)用遇到惡意攻擊的時(shí)候,即攻擊方反復(fù)的使用錯(cuò)誤的參數(shù)請(qǐng)求,例如非法用戶賬號(hào),導(dǎo)致業(yè)務(wù)應(yīng)用在緩存中查找不到數(shù)據(jù)不斷穿透緩存對(duì)數(shù)據(jù)庫進(jìn)行查詢,造成數(shù)據(jù)庫壓力陡然變大,導(dǎo)致業(yè)務(wù)應(yīng)用相應(yīng)速度變慢,嚴(yán)重的情況下甚至導(dǎo)致服務(wù)器宕機(jī),拒絕對(duì)外服務(wù)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例為解決現(xiàn)有技術(shù)中存在的至少一個(gè)問題而提供一種電子設(shè)備及信息處理方法。
本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例第一方面提供一種電子設(shè)備,包括:
接收單元,用于接收客戶端發(fā)送的登錄請(qǐng)求;其中,所述登錄請(qǐng)求中攜帶有第一賬號(hào);
預(yù)處理單元,用于對(duì)所述第一賬號(hào)進(jìn)行預(yù)處理,確定所述第一賬號(hào)所在的第一分組;
第一查詢單元,用于查詢緩存中是否存儲(chǔ)有所述第一分組的分組信息;
加載單元,用于當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),從數(shù)據(jù)庫中加載所述第一分組的分組信息;其中,所述分組信息包括所述第一分組內(nèi)所有用戶賬號(hào)及各所述用戶賬號(hào)對(duì)應(yīng)的密碼;
第二查詢單元,用于當(dāng)所述緩存中存儲(chǔ)有所述第一分組的分組信息或從所述數(shù)據(jù)庫中加載了所述第一分組的分組信息后,查詢緩存中所述第一分組的分組信息;
確定單元,用于當(dāng)在所述第一分組的分組信息中未查詢到有所述第一賬號(hào)時(shí),確定所述第一賬號(hào)為非法賬號(hào)。
基于上述方案,所述預(yù)處理單元,具體用于對(duì)所述第一賬號(hào)進(jìn)行哈希處理,將所述第一賬號(hào)轉(zhuǎn)換成預(yù)設(shè)長度的預(yù)定進(jìn)制的數(shù)字序列;
將所述數(shù)字序列進(jìn)行預(yù)定函數(shù)處理,獲得所述第一賬號(hào)所在的第一分組的分組標(biāo)識(shí)。
基于上述方案,所述預(yù)處理單元,具體用于將所述整數(shù)的高M(jìn)位和低M位進(jìn)行邏輯運(yùn)算或數(shù)學(xué)運(yùn)算,獲得所述第一分組的分組標(biāo)識(shí)。
基于上述方案,所述電子設(shè)備還包括:
第三查詢單元,用于查詢非法分組記錄;
所述確定單元,還用于當(dāng)所述第一分組為所述非法分組記錄中的非法分組時(shí),確定第一賬號(hào)為非法賬號(hào)。
基于上述方案,所述接收單元,還用于當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),接收所述數(shù)據(jù)庫在確定所述第一分組為非法分組的異常信息;
所述電子設(shè)備還包括:
更新單元,用于根據(jù)所述異常信息,更新所述非法分組記錄。
本發(fā)明實(shí)施例第二方面提供一種信息處理方法,包括:
接收客戶端發(fā)送的登錄請(qǐng)求;其中,所述登錄請(qǐng)求中攜帶有第一賬號(hào);
對(duì)所述第一賬號(hào)進(jìn)行預(yù)處理,確定所述第一賬號(hào)所在的第一分組;
查詢緩存中是否存儲(chǔ)有所述第一分組的分組信息;
當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),從數(shù)據(jù)庫中加載所述第一分組的分組信息;其中,所述分組信息包括所述第一分組內(nèi)所有用戶賬號(hào)及各所述用戶賬號(hào)對(duì)應(yīng)的密碼;
當(dāng)所述緩存中存儲(chǔ)有所述第一分組的分組信息或從所述數(shù)據(jù)庫中加載了所述第一分組的分組信息后,查詢緩存中所述第一分組的分組信息;
當(dāng)在所述第一分組的分組信息中未查詢到有所述第一賬號(hào)時(shí),確定所述第一賬號(hào)為非法賬號(hào)。
基于上述方案,所述對(duì)所述第一賬號(hào)進(jìn)行預(yù)處理,確定所述第一賬號(hào)所在的第一分組,包括:
對(duì)所述第一賬號(hào)進(jìn)行哈希處理,將所述第一賬號(hào)轉(zhuǎn)換成預(yù)設(shè)長度的預(yù)定進(jìn)制的數(shù)字序列;
將所述數(shù)字序列進(jìn)行預(yù)定函數(shù)處理,獲得所述第一賬號(hào)所在的第一分組的分組標(biāo)識(shí)。
基于上述方案,所述將所述整數(shù)進(jìn)行預(yù)定函數(shù)處理,獲得所述第一賬號(hào)所在的第一分組的分組標(biāo)識(shí),包括:
將所述整數(shù)的高M(jìn)位和低M位進(jìn)行邏輯運(yùn)算或數(shù)學(xué)運(yùn)算,獲得所述第一分組的分組標(biāo)識(shí)。
基于上述方案,所述方法還包括:
查詢非法分組記錄;
當(dāng)所述第一分組為所述非法分組記錄中的非法分組時(shí),確定第一賬號(hào)為非法賬號(hào)。
基于上述方案,所述方法還包括:
當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),接收所述數(shù)據(jù)庫在確定所述第一分組為非法分組的異常信息;
根據(jù)所述異常信息,更新所述非法分組記錄。
本發(fā)明實(shí)施例中提供的電子設(shè)備及信息處理方法,在接收到登錄請(qǐng)求之后,不會(huì)直接查詢?cè)摰卿浾?qǐng)求賬號(hào)中攜帶的第一賬號(hào),而是對(duì)所述第一賬號(hào)進(jìn)行預(yù)處理,確定所述第一賬號(hào)所在的第一分組;首先在緩存中查詢第一分組的分組信息,若未查詢到,則到數(shù)據(jù)庫中加載第一分組的分組信息,實(shí)現(xiàn)對(duì)第一分組內(nèi)所有用戶賬號(hào)及用戶賬號(hào)的密碼的一次性加載,避免了逐一加載用戶賬號(hào)及器對(duì)應(yīng)的密碼導(dǎo)致的數(shù)據(jù)庫和緩存之間的數(shù)據(jù)交互次數(shù)多、交互信令多、導(dǎo)致的數(shù)據(jù)庫的負(fù)載大及因負(fù)載大導(dǎo)致的宕機(jī)問題。若當(dāng)前登錄請(qǐng)求為攻擊方的惡意攻擊,則可以減少直接惡意攻擊滲透到數(shù)據(jù)庫的能力,提升了數(shù)據(jù)庫的抗攻擊能力,提升了數(shù)據(jù)庫的數(shù)據(jù)安全性和使用安全性。
附圖說明
圖1為本發(fā)明實(shí)施例提供的第一種信息處理方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的第二種信息處理方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的一種哈希算法的計(jì)算效果示意圖;
圖5為本發(fā)明實(shí)施例提供的用戶賬號(hào)的存儲(chǔ)示意圖;
圖6為本發(fā)明實(shí)施例提供給的另一種電子設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合說明書具體實(shí)施例和說明書附圖,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步闡述,應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明的技術(shù)方案,并不用于限定本發(fā)明的保護(hù)范圍。
如圖1所示,本發(fā)明第一實(shí)施例提出一種信息處理方法,包括:
步驟S110:接收客戶端發(fā)送的登錄請(qǐng)求;其中,所述登錄請(qǐng)求中攜帶有第一賬號(hào);
步驟S120:對(duì)所述第一賬號(hào)進(jìn)行預(yù)處理,確定所述第一賬號(hào)所在的第一分組;
步驟S130:查詢緩存中是否存儲(chǔ)有所述第一分組的分組信息;
步驟S140:當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),從數(shù)據(jù)庫中加載所述第一分組的分組信息;其中,所述分組信息包括所述第一分組內(nèi)所有用戶賬號(hào)及各所述用戶賬號(hào)對(duì)應(yīng)的密碼;
步驟S150:當(dāng)所述緩存中存儲(chǔ)有所述第一分組的分組信息或從所述數(shù)據(jù)庫中加載了所述第一分組的分組信息后,查詢緩存中所述第一分組的分組信息;
步驟S160:當(dāng)在所述第一分組的分組信息中未查詢到有所述第一賬號(hào)時(shí),確定所述第一賬號(hào)為非法賬號(hào)。
在本實(shí)施例中會(huì)對(duì)第一賬號(hào)進(jìn)行預(yù)處理,得到一個(gè)預(yù)處理結(jié)果;該預(yù)處理,確定出第一賬號(hào)所在的分組;在本實(shí)施例中將所述第一賬號(hào)所在的分組稱之為第一分組。
在步驟S130中查詢?cè)摰谝环纸M;若緩存中已經(jīng)存儲(chǔ)了第一分組,可直接在第一分組的分組信息查詢?cè)摰谝毁~號(hào),若沒有直接從數(shù)據(jù)庫中加載第一分組的分組信息,這樣的話,就一次性加載了所有第一分組內(nèi)的用戶賬號(hào)和密碼,實(shí)現(xiàn)了合法的用戶賬號(hào)和密碼的批量加載。這樣的話,下次有第一分組的用戶賬號(hào)請(qǐng)求登錄時(shí),就可以不用在向數(shù)據(jù)庫進(jìn)行數(shù)據(jù)加載,這樣就可以避免頻繁向數(shù)據(jù)庫請(qǐng)求數(shù)據(jù)導(dǎo)致的數(shù)據(jù)庫負(fù)荷大、因負(fù)荷大導(dǎo)致的數(shù)據(jù)延時(shí)大、甚至宕機(jī)等問題。
這樣的話,若攻擊方利用非法賬號(hào)請(qǐng)求登錄,若請(qǐng)求登錄的非法賬號(hào)對(duì)應(yīng)的分組為已經(jīng)加載到緩存中的賬號(hào),直接通過查詢?cè)摲纸M的分組信息就可以實(shí)現(xiàn)第一賬號(hào)是否為非法賬號(hào)的一個(gè)確定,這樣可以避免頻繁查詢數(shù)據(jù)庫,從數(shù)據(jù)庫中加載信息,導(dǎo)致的數(shù)據(jù)庫負(fù)荷大等問題。
如圖2所示,所述步驟S120可包括:
步驟S121:對(duì)所述第一賬號(hào)進(jìn)行哈希處理,將所述第一賬號(hào)轉(zhuǎn)換成預(yù)設(shè)長度的預(yù)定進(jìn)制的數(shù)字序列;這里的預(yù)定機(jī)制可包括二進(jìn)制、八進(jìn)制、十進(jìn)制或十六進(jìn)制等數(shù)學(xué)進(jìn)制。
步驟S122:將所述數(shù)字序列進(jìn)行預(yù)定函數(shù)處理,獲得所述第一賬號(hào)所在的第一分組的分組標(biāo)識(shí)。
通常所述第一賬號(hào)可為字符串,在本實(shí)施例中首先利用哈希處理將字符串轉(zhuǎn)換成整數(shù)。當(dāng)然所述第一賬號(hào)不局限于字符串,也可以為數(shù)字序列等。在步驟S122中通過預(yù)定函數(shù)處理,確定出第一分組的分組標(biāo)識(shí)。這里的分組標(biāo)識(shí)可為預(yù)定函數(shù)處理完之后的函數(shù)值。
當(dāng)然若所述第一賬號(hào)本身就是數(shù)字序列時(shí),所述步驟S120可直接包括:將所述數(shù)字序列直接視為整數(shù)進(jìn)行所述預(yù)定函數(shù)處理,確定出所述分組標(biāo)識(shí)。
進(jìn)一步地,所述步驟S122可包括:
將所述整數(shù)的高M(jìn)位和低M位進(jìn)行邏輯運(yùn)算或數(shù)學(xué)運(yùn)算,獲得所述第一分組的分組標(biāo)識(shí)。
在本實(shí)施例中所述步驟S121可以將所述字符串通過哈希處理轉(zhuǎn)換成可包括2M位的二進(jìn)制序列;在步驟S122中根據(jù)二進(jìn)制的序列的排序,將高M(jìn)位和低M位進(jìn)行異或處理,異或處理的處理結(jié)果即可為所述第一分組的分組標(biāo)識(shí)。這里的邏輯運(yùn)算可包括與運(yùn)算、或運(yùn)算或異或運(yùn)算等。
當(dāng)然,當(dāng)所述數(shù)字序列為八進(jìn)制序列、十進(jìn)制序列或十六進(jìn)制等非二進(jìn)制序列時(shí),可以采用數(shù)學(xué)計(jì)算,獲得所述分組標(biāo)識(shí)。例如,將高M(jìn)位和低M位進(jìn)行四則運(yùn)算,獲得所述第一分組標(biāo)識(shí)。
當(dāng)然,在具體實(shí)現(xiàn)時(shí),所述步驟S121還可以包括:將數(shù)字序列的第一賬號(hào),直接轉(zhuǎn)換成包括2M位的二進(jìn)制數(shù)字序列;在步驟S122中可以將所述二進(jìn)制數(shù)字序列進(jìn)行前述高M(jìn)位和低M位的異或處理,獲得所述第一分組的分組標(biāo)識(shí)。在本實(shí)施例中轉(zhuǎn)換成2M位的二進(jìn)制數(shù)學(xué)序列的高位添加“0”來形成2M位的數(shù)學(xué)序列。同行在高位添加“0”的數(shù)學(xué)序列轉(zhuǎn)換方式,同樣適用于非二進(jìn)制的數(shù)學(xué)序列的生成。
總之,本實(shí)施例提供了一種簡便獲取所述分組標(biāo)識(shí)的方法,具有實(shí)現(xiàn)簡單的特點(diǎn)。
在一些實(shí)施例中,所述方法還包括:
查詢非法分組記錄;
當(dāng)所述第一分組為所述非法分組記錄中的非法分組時(shí),確定第一賬號(hào)為非法賬號(hào)。
在所述緩存或數(shù)據(jù)庫中還存儲(chǔ)有非法分組記錄可包括非法分組的信息,這里的非法分組可包括不存在的分組。所述非法分組記錄可包括非法分組的非法分組標(biāo)識(shí)。若一個(gè)用戶賬號(hào)轉(zhuǎn)換得到非分組標(biāo)識(shí)為非法分組記錄中的非法分組標(biāo)識(shí),該用戶賬號(hào)可能就是攻擊方進(jìn)行惡意攻擊的使用的非法賬號(hào),故在本實(shí)施例中若確定出所述第一賬號(hào)對(duì)應(yīng)的第一分組為非法分組時(shí),直接可確定素?cái)?shù)第一賬號(hào)為非法賬號(hào)。
在本實(shí)施例中所述緩存可以事先從數(shù)據(jù)庫中加載所述非法分組信息。例如,接收數(shù)據(jù)庫主動(dòng)推送的信息,形成所述非法分組記錄,這樣不用緩存盲目請(qǐng)求數(shù)據(jù)庫的數(shù)據(jù)加載,導(dǎo)致的數(shù)據(jù)庫的負(fù)荷大的問題。
在一些實(shí)施例中,所述方法還包括:當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),接收所述數(shù)據(jù)庫在確定所述第一分組為非法分組的異常信息;根據(jù)所述異常信息,更新所述非法分組記錄。
當(dāng)數(shù)據(jù)庫確定有檢測到新的非法分組時(shí),主動(dòng)推送到緩存中,以方便緩存加載,顯然這樣可以提升設(shè)備基于緩存存儲(chǔ)的數(shù)據(jù)進(jìn)行攻擊的阻擋作用,減少攻擊直接滲透到數(shù)據(jù)庫導(dǎo)致的問題。
在本實(shí)施例中,所述信息處理方法還可包括應(yīng)用數(shù)據(jù)庫中的步驟,例如:
記錄用戶賬號(hào)及所述用戶賬號(hào)對(duì)應(yīng)的密碼;
對(duì)所述用戶賬號(hào)進(jìn)行預(yù)處理,確定所述用戶賬號(hào)所在的分組;
接收的查詢請(qǐng)求,其中,所述查詢請(qǐng)求包括請(qǐng)求查詢第一分組的分組標(biāo)識(shí);
響應(yīng)所述查詢請(qǐng)求,將所述第一分組的分組信息加載到緩存中;其中,所述第一分組的分組信息包括所述第一分組中的所有用戶賬號(hào)及密碼。
所述數(shù)據(jù)庫與所述緩存可位于同一個(gè)電子設(shè)備中,也可以位于不同的電子設(shè)備;通過電子設(shè)備的外部通信接口建立數(shù)據(jù)連接。
在本實(shí)施例中所述數(shù)據(jù)庫在響應(yīng)緩存的查詢一個(gè)分組的分組信息的查詢請(qǐng)求之前,會(huì)對(duì)合法的用戶賬號(hào)進(jìn)行分組;并將用戶賬號(hào)進(jìn)行分組存儲(chǔ),形成了所述分組信息,后續(xù)緩存?zhèn)葧?huì)在一個(gè)用戶賬號(hào)的觸發(fā)下,查詢?cè)撚脩粽竞盟诜纸M的分組信息,從而實(shí)現(xiàn)對(duì)一個(gè)分組的所有用戶賬號(hào)和密碼的加載到緩存中,從而避免逐一加載用戶賬號(hào)導(dǎo)致的緩存和數(shù)據(jù)庫之間的數(shù)據(jù)交互次數(shù)多,交互心靈多等導(dǎo)致的數(shù)據(jù)庫的負(fù)載大以及因負(fù)載過重導(dǎo)致的宕機(jī)等問題。
在具體的應(yīng)用過程中,應(yīng)用于所述數(shù)據(jù)庫中的所述方法還包括:當(dāng)數(shù)據(jù)庫中未查詢到所述第一分組的分組信息時(shí),形成異常信息;將所述異常信息發(fā)送給緩存;其中,所述異常信息用于供所述緩存更新非法分組記錄;所述非法分組記錄中包括非法分組。
總之,在本實(shí)施例中所述非法分組的記錄,還可以根據(jù)非法分組記錄快速識(shí)別出非法賬號(hào)的惡意攻擊,從而提升數(shù)據(jù)庫的抗攻擊能力,提升數(shù)據(jù)庫的安全性。
如圖3所示,本發(fā)明實(shí)施例還提供一種電子設(shè)備,包括:
接收單元110,用于接收客戶端發(fā)送的登錄請(qǐng)求;其中,所述登錄請(qǐng)求中攜帶有第一賬號(hào);
預(yù)處理單元120,用于對(duì)所述第一賬號(hào)進(jìn)行預(yù)處理,確定所述第一賬號(hào)所在的第一分組;
第一查詢單元130,用于查詢緩存中是否存儲(chǔ)有所述第一分組的分組信息;
加載單元140,用于當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),從數(shù)據(jù)庫中加載所述第一分組的分組信息;其中,所述分組信息包括所述第一分組內(nèi)所有用戶賬號(hào)及各所述用戶賬號(hào)對(duì)應(yīng)的密碼;
第二查詢單元150,用于當(dāng)所述緩存中存儲(chǔ)有所述第一分組的分組信息或從所述數(shù)據(jù)庫中加載了所述第一分組的分組信息后,查詢緩存中所述第一分組的分組信息;
確定單元160,用于當(dāng)在所述第一分組的分組信息中未查詢到有所述第一賬號(hào)時(shí),確定所述第一賬號(hào)為非法賬號(hào)。
本實(shí)施例所述的電子設(shè)備可為各種類型的具有信息處理的電子設(shè)備,例如,位于網(wǎng)絡(luò)側(cè)的服務(wù)器、例如,云服務(wù)器、社交服務(wù)器、電商服務(wù)器等各種電子設(shè)備。當(dāng)然所述電子設(shè)備也可以是與客戶端直接建立有連接的電子設(shè)備。
在本實(shí)施例中所述接收單元110可對(duì)應(yīng)于通信接口,可以從客戶端接收各種訪問請(qǐng)求,例如,登錄請(qǐng)求;例如,需要利用用戶賬號(hào)和密碼登錄云平臺(tái)、購物網(wǎng)站或社交賬號(hào)的賬號(hào)。
所述預(yù)處理單元120、第一查詢單元130、加載單元140、加載單元140、第二查詢單元150及確定單元160,都可對(duì)應(yīng)于處理器或處理電路;處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號(hào)處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)或應(yīng)用處理器(AP)等。所述處理電路可為專用集成電路等。
所述預(yù)處理單元120、第一查詢單元130、加載單元140、加載單元140、第二查詢單元150及確定單元160可以共同對(duì)應(yīng)于同一個(gè)處理器或處理電路,也可以分別對(duì)應(yīng)不同的處理器或處理電路。
在本實(shí)施例中當(dāng)接收到一個(gè)登錄請(qǐng)求之后,會(huì)對(duì)登錄請(qǐng)求中攜帶的第一賬號(hào)進(jìn)行預(yù)處理確定分組;根據(jù)確定的分組查詢數(shù)據(jù)庫,一次性將包括多個(gè)用戶賬號(hào)的分組信息都加載到緩存中,這樣就不用后續(xù)一個(gè)個(gè)加載用戶賬號(hào)和密碼,減少緩存和數(shù)據(jù)庫之間的交互次數(shù),降低了數(shù)據(jù)庫的繁忙度,減少了惡意攻擊直接滲透到數(shù)據(jù)庫導(dǎo)致的數(shù)據(jù)庫宕機(jī)等問題,提升了數(shù)據(jù)庫的安全防御能力,提升了數(shù)據(jù)庫的使用安全性。
在一些實(shí)施例中,所述預(yù)處理單元120,具體用于對(duì)所述第一賬號(hào)進(jìn)行哈希處理,將所述第一賬號(hào)轉(zhuǎn)換成預(yù)設(shè)長度的預(yù)定進(jìn)制的數(shù)字序列;將所述數(shù)字序列進(jìn)行預(yù)定函數(shù)處理,獲得所述第一賬號(hào)所在的第一分組的分組標(biāo)識(shí)。在本實(shí)施例中所述預(yù)處理單元120,通過海選處理,將各種格式,例如,字符串格式的第一賬號(hào)轉(zhuǎn)換成預(yù)定進(jìn)制的數(shù)字序列;在對(duì)數(shù)字序列進(jìn)行預(yù)定函數(shù)處理,獲得分組標(biāo)識(shí)。本實(shí)施例所述預(yù)處理單元的這種處理120具有簡便,具有實(shí)現(xiàn)簡便的特點(diǎn)。
在一些實(shí)施例中,所述預(yù)處理單元120,具體用于將所述整數(shù)的高M(jìn)位和低M位進(jìn)行邏輯運(yùn)算或數(shù)學(xué)運(yùn)算,獲得所述第一分組的分組標(biāo)識(shí)。在本實(shí)施例中所述邏輯運(yùn)算可包括與運(yùn)算、或運(yùn)算及異或運(yùn)算其中的一項(xiàng)或多項(xiàng)。所述數(shù)學(xué)運(yùn)算至少可包括四則運(yùn)算中的一種或多種。通過所述邏輯運(yùn)算或數(shù)學(xué)運(yùn)算的處理,可以簡便的獲取所述分組標(biāo)識(shí)。
在一些實(shí)施例中,所述電子設(shè)備還包括:第三查詢單元,用于查詢非法分組記錄;所述確定單元160,還用于當(dāng)所述第一分組為所述非法分組記錄中的非法分組時(shí),確定第一賬號(hào)為非法賬號(hào)。
在本實(shí)施例中所述電子設(shè)備還引入了第三查詢單元,這里的第三查詢的單元對(duì)應(yīng)的物理結(jié)構(gòu),與前述的第一查詢單元和第二查詢單元類似。在本實(shí)施例中可以通過查詢非法分組記錄,可以在不查詢數(shù)據(jù)庫的情況下,快速剔除部分的非法賬號(hào),再次降低了數(shù)據(jù)庫的負(fù)荷,降低了惡意攻擊向數(shù)據(jù)庫的滲透,再次提升了數(shù)據(jù)庫的安全性。
在一些實(shí)施例中,所述接收單元110,還用于當(dāng)所述緩存中未存儲(chǔ)有所述第一分組的分組信息時(shí),接收所述數(shù)據(jù)庫在確定所述第一分組為非法分組的異常信息;所述電子設(shè)備還包括:更新單元,用于根據(jù)所述異常信息,更新所述非法分組記錄。
在本實(shí)施例中所述接收單元110還用于從數(shù)據(jù)庫接收異常信息,且在電子設(shè)備新增了更新單元,該更新單元與所述緩存連接,對(duì)應(yīng)的物理結(jié)構(gòu)同樣可為處理器或處理電路,可以用于根據(jù)所述異常信息,更新存儲(chǔ)在緩存中的非法分組記錄,數(shù)據(jù)庫這種主動(dòng)推送異常信息,使得緩存在有檢測到新的非法分組時(shí),就自動(dòng)更新非法分組記錄,一方面保持了數(shù)據(jù)庫與緩存中對(duì)非法分組記錄的同步,同時(shí)方便緩存在不查詢數(shù)據(jù)庫的情況下,就可以直接檢測出部分非法賬戶,從而提升電子設(shè)備的智能性,再次降低了數(shù)據(jù)庫的負(fù)荷。在本實(shí)施例中直接存儲(chǔ)的非法分組的非法分組信息,這樣可以對(duì)一個(gè)非法分組內(nèi)的所有非法賬號(hào)進(jìn)行阻攔,顯然比單獨(dú)記錄一個(gè)個(gè)非法賬號(hào),一方面減少了存儲(chǔ)的信息量,同時(shí)增加了非法賬號(hào)的阻攔能力。
以下結(jié)合上述實(shí)施例提供兩個(gè)具體示例:
示例一:
在本示例中采用哈希算法進(jìn)行緩存分布計(jì)算,將哈希(即取模計(jì)算)后相同的值加載到緩存中,當(dāng)用戶請(qǐng)求的時(shí)候判斷數(shù)據(jù)在哪個(gè)哈希值中,控制了惡意請(qǐng)求只能停留在緩存層面,不會(huì)進(jìn)入到數(shù)據(jù)庫層面,避免攻擊穿透到數(shù)據(jù)庫層面導(dǎo)致數(shù)據(jù)庫接收到惡意的請(qǐng)求。
核心算法的介紹:本算法采用的是采用每P(例如,所述P=1000)個(gè)用戶賬號(hào)為一個(gè)分組,將用戶賬號(hào)進(jìn)行hash計(jì)算得出一個(gè)int類型的數(shù)值,計(jì)算方法如下:
第一步:調(diào)用hashcode()的作用是將提供將任意長的字符串哈希成一個(gè)整數(shù),具體的算法對(duì)應(yīng)的數(shù)學(xué)表達(dá)式如下:
s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]
s[i]是字符串的第i個(gè)字符,n是String的長度。賬號(hào)中心的賬號(hào)都是字符串形式,所以會(huì)經(jīng)過第一步hashcode的轉(zhuǎn)化。
第二步:高16bit不變,低16bit和高16bit做了一個(gè)異或,最終得出該數(shù)據(jù)的整型值。
對(duì)得出的整形值對(duì)1000做取模計(jì)算得出哈希值,來決定該用戶處于哪個(gè)分組。如果一個(gè)不存在而用戶賬號(hào)在取模后落在規(guī)定分組,但是在規(guī)定的分組中又找不到該用戶的對(duì)應(yīng)數(shù)據(jù),即認(rèn)為為攻擊用戶,拋棄該用戶。
如圖4所示,h=hashcode()得到1111 1111 1111 1111 1111 0000 1110 1010為是利用前述的數(shù)學(xué)表達(dá)數(shù)s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]對(duì)用戶賬號(hào)得到int值。
接下來利用對(duì)h進(jìn)行循環(huán)位移16,得到1111 1111 1111 1111 0000 1111 0001 0101。
在利用高16位和低16進(jìn)行異或處理得到異或結(jié)果。所述hashcode()預(yù)設(shè)函數(shù)。
圖5所示的為本示例所述中所述用戶賬號(hào)的存儲(chǔ)示意圖;在數(shù)據(jù)庫和緩存中用戶賬號(hào)與器對(duì)應(yīng)的用戶信息對(duì)應(yīng)存儲(chǔ)。這里的用戶信息至少包括該用戶賬號(hào)的密碼,當(dāng)然還可以包括所述用戶賬號(hào)的使用用戶的個(gè)人信息,例如,身份證號(hào)等身份標(biāo)識(shí)、職業(yè)、年紀(jì)以及喜好等各種信息,不局限于所述密碼。
在每一個(gè)分組中均包括P個(gè)用戶賬號(hào)。在圖5中哈希值m對(duì)應(yīng)于分組m,哈希值S對(duì)應(yīng)于分組S。在本示例中每一個(gè)分組的分組標(biāo)識(shí),為該分組內(nèi)所有用戶賬號(hào)利用預(yù)處理之后得到的哈希值。故可以在后續(xù)處理中,直接利用還需最作為查詢分組的分組標(biāo)識(shí)。
在本示例中,基于上述存儲(chǔ)操作,所述方法可包括:
步驟1.客戶端發(fā)起登錄請(qǐng)求:
客戶端發(fā)起登錄請(qǐng)求,根據(jù)用戶賬號(hào)進(jìn)行取模計(jì)算,判斷該用戶處于哪個(gè)分組當(dāng)中。
步驟2.分組加載:
判斷該分組是否存在緩存中,如不存在則從數(shù)據(jù)庫中加載整個(gè)分組到緩存中,如果存在則直接在緩存存儲(chǔ)的該分組中查找該用戶賬號(hào)。
步驟3.判斷該用戶賬號(hào)是否是合法用戶:
在分組中發(fā)現(xiàn)該用戶賬號(hào),則直接讀取該用戶信息,如果未發(fā)現(xiàn)該用戶,即認(rèn)為為攻擊用戶,拋棄該用戶。
示例二:
如圖6所示,本示例提供一種電子設(shè)備,包括外部通信接口210、處理器220、緩存230及數(shù)據(jù)庫240;所述外部通信接口210、處理器220、緩存230及數(shù)據(jù)庫240均通過通信總線250相連;所述通信總線250可包括數(shù)據(jù)總線和地址總線,總之可以用于連接在其之上的外部通信接口210、處理器220、緩存230及數(shù)據(jù)庫240進(jìn)行數(shù)據(jù)交互。
所述外部通信接口210,可用于客戶端進(jìn)行數(shù)據(jù)交互,例如接收登錄請(qǐng)求;
所述處理器220,用于進(jìn)行數(shù)據(jù)處理,例如前述對(duì)第一賬號(hào)的預(yù)處理,確定第一賬號(hào)所在的第一分組。
所述數(shù)據(jù)庫240可用于非瞬間存儲(chǔ)用戶賬號(hào)及用戶賬號(hào)對(duì)應(yīng)的用戶信息,及用戶賬號(hào)所在分組的分組信息。
所述緩存230可用于存儲(chǔ)所述數(shù)據(jù)庫240中存儲(chǔ)的全部或部分所述分組信息。
圖6所示的電子設(shè)備中的處理器220將在接收到登錄請(qǐng)求之后,通過第一賬號(hào)的預(yù)處理之后,確定第一賬號(hào)所在的第一分組,在緩存230中是否存儲(chǔ)有第一分組,若存儲(chǔ)有第一分組,則直接查詢所述第一分組的分組信息,確定所述第一賬號(hào)是否為非法賬號(hào),若緩存230中不存在所述第一分組,所述處理器220訪問所述數(shù)據(jù)庫240到數(shù)據(jù)庫庫240查詢所述第一分組,若查詢到所述第一分組,并將所述第一分組的分組信息從數(shù)據(jù)庫240中讀取出來,存儲(chǔ)到緩存230中。再到緩存230的第一分組的分組信息中,查詢所述第一賬號(hào),若第一分組的分組信息存在所述第一賬號(hào),則認(rèn)為第一賬號(hào)為合法賬號(hào),否則認(rèn)為為非法賬號(hào)。
應(yīng)理解,說明書通篇中提到的“一個(gè)實(shí)施例”或“一實(shí)施例”意味著與實(shí)施例有關(guān)的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,在整個(gè)說明書各處出現(xiàn)的“在一個(gè)實(shí)施例中”或“在一實(shí)施例中”未必一定指相同的實(shí)施例。此外,這些特定的特征、結(jié)構(gòu)或特性可以任意適合的方式結(jié)合在一個(gè)或多個(gè)實(shí)施例中。應(yīng)理解,在本發(fā)明的各種實(shí)施例中,上述各過程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(Read Only Memory,ROM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、ROM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。