本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,具體涉及一種人機(jī)識(shí)別方法、服務(wù)端、客戶端及人機(jī)識(shí)別系統(tǒng)。
背景技術(shù):
互聯(lián)網(wǎng)的近幾年的快速發(fā)生,豐富娛樂(lè)了人們的生活,越來(lái)越多的人選擇使用互聯(lián)網(wǎng)進(jìn)行日常金融操作,例如登錄網(wǎng)上銀行管理銀行賬戶、在線購(gòu)物等。而互聯(lián)網(wǎng)也常常伴隨有黑客的活動(dòng)。黑客們利用網(wǎng)絡(luò)機(jī)器人,例如自動(dòng)化腳本、桌面或服務(wù)端程序等,能夠以全自動(dòng)暴力破解的方式快速破解數(shù)據(jù)敏感度比較高的使用場(chǎng)景,獲得普通用戶的各種隱私信息,例如銀行賬戶密碼、在線購(gòu)物的登錄密碼等,嚴(yán)重危害用戶利益。目前業(yè)界普遍使用的防護(hù)方法是全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試(captcha,completelyautomatedpublicturingtesttotellcomputersandhumansapart),即在用戶到達(dá)存在敏感數(shù)據(jù)操作的應(yīng)用登錄界面時(shí),系統(tǒng)會(huì)在后臺(tái)生成一幅圖片并在圖片上嵌入一個(gè)隨機(jī)字符串,當(dāng)客戶端發(fā)送登錄請(qǐng)求給服務(wù)端時(shí),如果服務(wù)端檢測(cè)到了客戶端發(fā)送來(lái)了正確的圖片上的字符串內(nèi)容,則認(rèn)為此時(shí)的客戶端為普通用戶在操作而不是網(wǎng)絡(luò)機(jī)器人,因?yàn)槠毡檎J(rèn)為機(jī)器是很難快速、動(dòng)態(tài)且準(zhǔn)確的識(shí)別出圖片上的隨機(jī)字符串的。
captcha技術(shù)雖然一定程度上的解決了人機(jī)識(shí)別的大部分工作,但同時(shí)也極大的影響了人們操作的流暢性。特別是當(dāng)用戶使用的上網(wǎng)設(shè)備為移動(dòng)終端時(shí),辨別圖片上的隨機(jī)數(shù)字并輸入是非常繁瑣的。因而現(xiàn)有的人機(jī)識(shí)別技術(shù)造成了用戶操作時(shí)效率及流暢度的低下。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù),本發(fā)明提供了一種人機(jī)識(shí)別方法、服務(wù)端、客戶端和人機(jī)識(shí)別系統(tǒng),旨在保證人機(jī)識(shí)別效率的同時(shí),提高用戶的操作的操作效率及流暢度。
本發(fā)明目的之一在于提供了一種人機(jī)識(shí)別方法,其包括以下步驟:
服務(wù)端接收客戶端發(fā)送的操作請(qǐng)求,與所述客戶端建立連接;
在所述服務(wù)端中生成隨機(jī)代碼片段作為待執(zhí)行代碼段,并將所述待執(zhí)行代碼段發(fā)送至所述客戶端,其中,所述待執(zhí)行代碼段為只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行的代碼段;
所述服務(wù)端接收并驗(yàn)證所述客戶端發(fā)送的執(zhí)行了待執(zhí)行代碼段后的執(zhí)行結(jié)果;
若所述執(zhí)行結(jié)果驗(yàn)證通過(guò),則將人機(jī)識(shí)別結(jié)果確定為用戶在預(yù)設(shè)客戶端的操作;
若所述執(zhí)行結(jié)果驗(yàn)證未通過(guò),則將人機(jī)識(shí)別結(jié)果確定為機(jī)器操作。
本發(fā)明目的之二在于的提供了一種人機(jī)識(shí)別方法,其包括以下步驟:
客戶端向服務(wù)端發(fā)送操作請(qǐng)求,與所述服務(wù)端建立連接;
所述客戶端接收并執(zhí)行所述服務(wù)端發(fā)送的待執(zhí)行代碼段,得到執(zhí)行結(jié)果;
將所述執(zhí)行結(jié)果發(fā)送至所述服務(wù)端,以便于所述服務(wù)端基于所述執(zhí)行結(jié)果進(jìn)行人機(jī)識(shí)別。
本發(fā)明目的之三在于提供了一種服務(wù)端,其包括:
連接建立單元,用于接收客戶端發(fā)送的操作請(qǐng)求,與所述客戶端建立連接;
代碼生成單元,用于生成隨機(jī)代碼片段作為待執(zhí)行代碼段,其中,所述待執(zhí)行代碼段為只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行的代碼段;
數(shù)據(jù)發(fā)送單元,用于將所述代碼生成單元生成的待執(zhí)行代碼段發(fā)送至所述客戶端;
驗(yàn)證單元,用于接收并驗(yàn)證所述客戶端發(fā)送的執(zhí)行了待執(zhí)行代碼段后的執(zhí)行結(jié)果;
人機(jī)識(shí)別結(jié)果確定單元,用于在所述執(zhí)行結(jié)果通過(guò)所述驗(yàn)證單元的驗(yàn)證時(shí),將人機(jī)識(shí)別結(jié)果確定為用戶在預(yù)設(shè)客戶端的操作,在所述執(zhí)行結(jié)果未通過(guò)所述驗(yàn)證單元的驗(yàn)證時(shí),將人機(jī)識(shí)別結(jié)果確定為機(jī)器操作。
本發(fā)明目的之四在于提供了一種客戶端,其包括:
連接建立單元,用于向服務(wù)端發(fā)送操作請(qǐng)求,并與所述服務(wù)端建立連接;
數(shù)據(jù)接收單元,用于接收所述服務(wù)端發(fā)送的待執(zhí)行代碼段,
代碼執(zhí)行單元,用于執(zhí)行所述數(shù)據(jù)接收單元接收的待執(zhí)行代碼段,得到執(zhí)行結(jié)果;
執(zhí)行結(jié)果發(fā)送單元,用于將所述代碼執(zhí)行單元得到的執(zhí)行結(jié)果發(fā)送至服務(wù)端,以便于所述服務(wù)端基于所述執(zhí)行結(jié)果進(jìn)行人機(jī)識(shí)別。
本發(fā)明目的之五在于提供了一種人機(jī)識(shí)別系統(tǒng),其包括如上所述的服務(wù)端和與如上所述的服務(wù)端相連的如上所述的客戶端。
由上可見(jiàn),在本發(fā)明方案中,由服務(wù)端接收客戶端發(fā)送的操作請(qǐng)求,與客戶端建立連接,并在服務(wù)端中生成隨機(jī)代碼片段作為待執(zhí)行代碼段,將所述待執(zhí)行代碼段發(fā)送至所述客戶端后,由所述服務(wù)端接收并驗(yàn)證客戶端發(fā)送的執(zhí)行了待執(zhí)行代碼段后的執(zhí)行結(jié)果,若所述執(zhí)行結(jié)果驗(yàn)證通過(guò),則將人機(jī)識(shí)別結(jié)果確定為用戶在預(yù)設(shè)客戶端的操作,若所述執(zhí)行結(jié)果驗(yàn)證未通過(guò),則將人機(jī)識(shí)別結(jié)果確定為機(jī)器操作。本發(fā)明方案無(wú)需用戶參與到人機(jī)識(shí)別的過(guò)程中,免去了用戶繁瑣的操作,能夠大大提高用戶操作的效率及流暢度。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的人機(jī)識(shí)別方法的實(shí)現(xiàn)流程圖;
圖2為本發(fā)明實(shí)施例提供的人機(jī)識(shí)別方法步驟s102的一種具體實(shí)現(xiàn)流程圖;
圖3為本發(fā)明實(shí)施例提供的另一種人機(jī)識(shí)別方法的實(shí)現(xiàn)流程圖;
圖4為本發(fā)明實(shí)施例提供的服務(wù)端的結(jié)構(gòu)框圖;
圖5為本發(fā)明實(shí)施例提供的客戶端的結(jié)構(gòu)框圖;
圖6為本發(fā)明實(shí)施例提供的人機(jī)識(shí)別系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)描述:
實(shí)施例一
圖1示出了本發(fā)明實(shí)施例一提供的人機(jī)識(shí)別方法的實(shí)現(xiàn)流程,詳述如下:
在步驟s101中,服務(wù)端接收客戶端發(fā)送的操作請(qǐng)求,與上述客戶端建立連接。
在本發(fā)明實(shí)施例中,服務(wù)端首先接收客戶端發(fā)送的操作請(qǐng)求,并在當(dāng)上述服務(wù)端并未與上述客戶端建立連接時(shí),與上述客戶端建立網(wǎng)絡(luò)連接。上述客戶端發(fā)送的操作請(qǐng)求可以是請(qǐng)求訪問(wèn)敏感度較高的頁(yè)面,例如請(qǐng)求訪問(wèn)需要用戶輸入賬號(hào)及密碼以進(jìn)行登錄的登錄頁(yè)面、信息下載頁(yè)面或者是用戶個(gè)人隱私度較高的頁(yè)面。在上述這些操作請(qǐng)求下,才需要對(duì)這些操作進(jìn)行人機(jī)識(shí)別,避免網(wǎng)絡(luò)機(jī)器人對(duì)敏感信息的竊取。當(dāng)然,在接收到其它類型的操作請(qǐng)求時(shí),也可以對(duì)客戶端使用本發(fā)明實(shí)施例方案進(jìn)行人機(jī)識(shí)別,此處不作限定。
在步驟s102中,在上述服務(wù)端中生成隨機(jī)代碼片段作為待執(zhí)行代碼段,并將上述待執(zhí)行代碼段發(fā)送至上述客戶端。
在本發(fā)明實(shí)施例中,服務(wù)端將在與客戶端建立連接后,生成隨機(jī)代碼片段作為待執(zhí)行代碼段,并作為對(duì)上述客戶端發(fā)送的操作請(qǐng)求的響應(yīng),將上述待執(zhí)行代碼段伴隨客戶端請(qǐng)求訪問(wèn)的頁(yè)面,例如登錄頁(yè)面等,發(fā)送至客戶端,其中,上述待執(zhí)行代碼段為只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行的代碼段,例如javascript代碼,通常情況下普通用戶使用的訪問(wèn)網(wǎng)絡(luò)頁(yè)面的客戶端,即主流瀏覽器,都具備執(zhí)行javascript代碼的功能。為了保證上述待執(zhí)行代碼段只有主流瀏覽器能夠執(zhí)行,網(wǎng)絡(luò)機(jī)器人如各種測(cè)試工具等無(wú)法執(zhí)行與使用,開(kāi)發(fā)人員前期在服務(wù)端中進(jìn)行統(tǒng)一資源定位符(uniformresourcelocator,url)的應(yīng)用程序編程接口(applicationprogramminginterface,api)的設(shè)計(jì)時(shí),需保證其是提供給主流瀏覽器的??蛇x地,服務(wù)端會(huì)在將上述待執(zhí)行代碼段發(fā)送至上述客戶端之前,保存一份預(yù)設(shè)運(yùn)行環(huán)境下的正確執(zhí)行結(jié)果,作為對(duì)后續(xù)客戶端發(fā)送的執(zhí)行結(jié)果的進(jìn)行驗(yàn)證的參考基準(zhǔn)。進(jìn)一步地,為了防止數(shù)據(jù)傳輸過(guò)程中信息的泄露,保證通信數(shù)據(jù)的安全,上述待執(zhí)行代碼段在發(fā)送至客戶端之前,可以先作強(qiáng)混淆處理。還可以在發(fā)送至客戶端的數(shù)據(jù)中攜帶隨機(jī)加密秘鑰,防止網(wǎng)絡(luò)機(jī)器人利用服務(wù)端已進(jìn)行過(guò)身份驗(yàn)證的數(shù)據(jù)進(jìn)行欺騙。
在步驟s103中,上述服務(wù)端接收并驗(yàn)證上述客戶端發(fā)送的執(zhí)行了待執(zhí)行代碼段后的執(zhí)行結(jié)果。
在本發(fā)明實(shí)施例中,在服務(wù)端在發(fā)送了待執(zhí)行代碼段至上述客戶端后,客戶端會(huì)執(zhí)行上述待執(zhí)行代碼段并得到執(zhí)行結(jié)果,即得到待執(zhí)行代碼段的返回值,在下一次客戶端發(fā)送數(shù)據(jù)至服務(wù)端時(shí),上述執(zhí)行結(jié)果將一并被發(fā)送至服務(wù)端。服務(wù)端接收了客戶端發(fā)送的上述執(zhí)行結(jié)果后,會(huì)對(duì)上述執(zhí)行結(jié)果進(jìn)行驗(yàn)證,以確定跟服務(wù)端進(jìn)行會(huì)話的是普通用戶還是網(wǎng)絡(luò)機(jī)器人。
在步驟s104中,若上述執(zhí)行結(jié)果驗(yàn)證通過(guò),則將人機(jī)識(shí)別結(jié)果確定為用戶在預(yù)設(shè)客戶端的操作,若上述執(zhí)行結(jié)果驗(yàn)證未通過(guò),則將人機(jī)識(shí)別結(jié)果確定為機(jī)器操作。
在本發(fā)明實(shí)施例中,由于上述待執(zhí)行代碼段只能在特定的客戶端運(yùn)行環(huán)境下執(zhí)行,因此只要上述執(zhí)行結(jié)果與上述服務(wù)端保存的正確執(zhí)行結(jié)果一致,就認(rèn)為此時(shí)與服務(wù)端進(jìn)行通話的不是網(wǎng)絡(luò)機(jī)器人,而是普通用戶,因?yàn)榫W(wǎng)絡(luò)機(jī)器人往往是在非瀏覽器模式直接向服務(wù)端發(fā)送請(qǐng)求并實(shí)現(xiàn)暴力破解,無(wú)法執(zhí)行上述待執(zhí)行代碼段,自然也無(wú)法獲得正確的執(zhí)行結(jié)果。此時(shí),人機(jī)識(shí)別結(jié)果被確定為用戶在預(yù)設(shè)客戶端的操作,服務(wù)端將繼續(xù)驗(yàn)證用戶的其它信息是否正確,例如用戶名及密碼是否匹配等。相反的,若接收到的上述執(zhí)行結(jié)果與上述服務(wù)端保存的正確執(zhí)行結(jié)果不一致,則認(rèn)為此時(shí)與服務(wù)端進(jìn)行通話的是網(wǎng)絡(luò)機(jī)器人,人機(jī)識(shí)別結(jié)果被確定為機(jī)器操作,服務(wù)端可以選擇結(jié)束與客戶端的對(duì)話,也可以選擇返回步驟s101,重復(fù)上述步驟,再次進(jìn)行驗(yàn)證。
可選地,為了降低待執(zhí)行代碼段被破解的風(fēng)險(xiǎn),在將上述待執(zhí)行代碼段發(fā)送至上述客戶端之前,上述人機(jī)識(shí)別方法還包括:
在上述待執(zhí)行代碼段中加入延時(shí)算法和/或客戶端的信息指紋。
其中,雖然步驟s101至步驟s104已經(jīng)能夠保證網(wǎng)絡(luò)機(jī)器人無(wú)法模擬客戶端獲取用于人機(jī)識(shí)別的待執(zhí)行代碼段,確保了與服務(wù)端進(jìn)行對(duì)話的一定是普通用戶使用的主流瀏覽器,但是,可能會(huì)出現(xiàn)攻擊者是在瀏覽器環(huán)境下作暴力破解的情況,因而,上述人機(jī)識(shí)別方法仍然存在一定的隱患。為了徹底杜絕此類情況,可以在待執(zhí)行代碼段中加入延時(shí)算法,例如,每次執(zhí)行完后需要等待一定時(shí)間才能返回執(zhí)行結(jié)果,這樣在攻擊者使用的是瀏覽器暴力破解,解析過(guò)程較為低效的情況下,再在待執(zhí)行代碼段中加入延時(shí)算法可以大大降低在瀏覽器環(huán)境下執(zhí)行暴力破解的風(fēng)險(xiǎn)。
或者,還可以在待執(zhí)行代碼段中加入客戶端的信息指紋。其中,客戶端的信息指紋包括軟件指紋及硬件指紋。軟件指紋為,不同的服務(wù)端中服務(wù)器的操作系統(tǒng),web容器等會(huì)影響到http頭信息的順序。硬件指紋為,由于反向透明代理系統(tǒng)的存在,客戶端與服務(wù)端之間的映射關(guān)系等信息也會(huì)影響到http頭信息。由于網(wǎng)絡(luò)機(jī)器人進(jìn)行暴力破解時(shí)并不關(guān)注或者涵蓋客戶端信息指紋的差異,因而,通過(guò)對(duì)信息指紋的完整性檢驗(yàn),能夠達(dá)到服務(wù)端發(fā)送給客戶端的代碼只有在預(yù)設(shè)的客戶端環(huán)境下才能夠運(yùn)行的目的,進(jìn)一步提高客戶端與服務(wù)端之間的通信安全性。
圖2示出了步驟s102的一種具體實(shí)現(xiàn)流程:
在步驟s201中,在預(yù)設(shè)的服務(wù)端隨機(jī)算法庫(kù)中抽取任一隨機(jī)算法作為目標(biāo)隨機(jī)算法。
在步驟s202中,上述服務(wù)端調(diào)用上述目標(biāo)隨機(jī)算法生成函數(shù)名、變量名均隨機(jī)的隨機(jī)函數(shù),作為上述待執(zhí)行代碼段。
在本發(fā)明實(shí)施例中,由開(kāi)發(fā)人員預(yù)先在服務(wù)端構(gòu)建一個(gè)隨機(jī)算法庫(kù),每次需要生成待執(zhí)行代碼段時(shí),在后臺(tái)從上述隨機(jī)算法庫(kù)中抽取任意一個(gè)隨機(jī)算法作為目標(biāo)隨機(jī)算法,并在隨機(jī)函數(shù)的內(nèi)部調(diào)用該目標(biāo)隨機(jī)算法。并且,該隨機(jī)函數(shù)的函數(shù)名稱,變量名稱及函數(shù)返回值均為隨機(jī)生成的。因?yàn)樽詣?dòng)化工具永遠(yuǎn)不知道服務(wù)端生成的待生成代碼段是什么,也就無(wú)法自動(dòng)識(shí)別和執(zhí)行了,以此能夠防止自動(dòng)化工具等類型的網(wǎng)絡(luò)機(jī)器人在非瀏覽器模式下直接向上述服務(wù)端發(fā)送請(qǐng)求并實(shí)現(xiàn)暴力破解。
在步驟s203中,將上述執(zhí)行代碼段放入http響應(yīng)體的隨機(jī)位置,發(fā)送至客戶端。
在本發(fā)明實(shí)施例中,為了防止網(wǎng)絡(luò)機(jī)器人針對(duì)待執(zhí)行代碼段在http響應(yīng)體的位置,找到待執(zhí)行代碼段并執(zhí)行,在將待執(zhí)行代碼段放入http響應(yīng)體時(shí),隨機(jī)的設(shè)置待執(zhí)行代碼段的存放位置,以避免網(wǎng)絡(luò)機(jī)器人找到待執(zhí)行代碼段的固定位置并實(shí)現(xiàn)破解。
由上可知,在本發(fā)明實(shí)施例中,在服務(wù)端中生成只有在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下才能執(zhí)行的代碼段,并在接收了客戶端返回的執(zhí)行結(jié)果后進(jìn)行驗(yàn)證,實(shí)現(xiàn)對(duì)客戶端的人機(jī)識(shí)別,提供了透明的、用戶無(wú)感知的人機(jī)識(shí)別方法。運(yùn)用本發(fā)明方案,無(wú)需再在登錄、注冊(cè)等頁(yè)面要求用戶輸出captcha,達(dá)到了用戶體驗(yàn)與安全性之間的平衡。同時(shí),由于待執(zhí)行代碼段只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行,因此能夠限制非標(biāo)準(zhǔn)客戶端使用服務(wù)提供者提供的服務(wù),也即是能夠防止api的盜用。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,相應(yīng)的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,上述的存儲(chǔ)介質(zhì),如rom/ram、磁盤或光盤等。
實(shí)施例二
圖3示出了本發(fā)明實(shí)施例二提供的一種人機(jī)識(shí)別方法的實(shí)現(xiàn)流程,詳述如下;
在步驟s301中,客戶端向服務(wù)端發(fā)送操作請(qǐng)求,與上述服務(wù)端建立連接。
在步驟s302中,上述客戶端接收并執(zhí)行上述服務(wù)端發(fā)送的待執(zhí)行代碼段,得到執(zhí)行結(jié)果。
在本發(fā)明實(shí)施例中,在用戶需要訪問(wèn)敏感度較高的頁(yè)面時(shí),客戶端先向服務(wù)端發(fā)起應(yīng)用請(qǐng)求,與上述服務(wù)端建立網(wǎng)絡(luò)連接。在與服務(wù)端建立連接后,服務(wù)端將對(duì)客戶端發(fā)起的應(yīng)用請(qǐng)求作出響應(yīng),在http響應(yīng)體中包含有待執(zhí)行代碼段。上述客戶端將會(huì)在服務(wù)端的http響應(yīng)體中找到并執(zhí)行上述待執(zhí)行代碼段。其中,上述待執(zhí)行代碼段為預(yù)設(shè)的客戶端環(huán)境下才能執(zhí)行的代碼段,例如javascript代碼。通常情況下,普通用戶使用的訪問(wèn)網(wǎng)絡(luò)頁(yè)面的客戶端為web客戶端,即主流瀏覽器??蛇x地,由于上述javascript代碼在http響應(yīng)體當(dāng)中的位置隨機(jī),雖然可以一定程度的防止網(wǎng)絡(luò)機(jī)器人對(duì)其進(jìn)行暴力破解,但是,網(wǎng)絡(luò)機(jī)器人仍可能通過(guò)文檔對(duì)象模型(htmldocumentobjectmodel,htmldom)的可擴(kuò)展標(biāo)記語(yǔ)言路徑語(yǔ)言(xmlpathlanguage,xpath)找到位于http響應(yīng)體隨機(jī)位置的待執(zhí)行代碼段,因此,需要在web應(yīng)用的view層增加隨機(jī)算法,根據(jù)上述view層的隨機(jī)算法將上述待執(zhí)行代碼段保存于上述web客戶端的隨機(jī)位置上并保證可以正確執(zhí)行,以避免網(wǎng)絡(luò)機(jī)器人仿真的執(zhí)行上述待執(zhí)行代碼段完成暴力破解。
在步驟s303中,將上述執(zhí)行結(jié)果發(fā)送至服務(wù)端,以便于上述服務(wù)端基于上述執(zhí)行結(jié)果進(jìn)行人機(jī)識(shí)別。
在本發(fā)明實(shí)施例中,上述步驟s301至s302確保了只有在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下才能執(zhí)行服務(wù)端發(fā)送的待執(zhí)行代碼段,在獲得待執(zhí)行代碼段的執(zhí)行結(jié)果后,在下一次向服務(wù)端發(fā)起數(shù)據(jù)傳輸時(shí),例如用戶在登錄頁(yè)面上輸入了用戶名及密碼并提交請(qǐng)求后,將上述待執(zhí)行結(jié)果與用戶的用戶名及密碼一并發(fā)送至上述服務(wù)端,等待服務(wù)端對(duì)執(zhí)行結(jié)果及用戶信息進(jìn)行驗(yàn)證。
由上可見(jiàn),在本發(fā)明實(shí)施例中,由于服務(wù)端發(fā)送到客戶端的待執(zhí)行代碼段為只有在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下才能執(zhí)行的代碼段,具備不可繞過(guò)性,用戶無(wú)需再在客戶端的登錄、注冊(cè)等頁(yè)面輸入captcha,達(dá)到了用戶體驗(yàn)與安全性之間的平衡,提供了透明的、用戶無(wú)感知的人機(jī)識(shí)別方法。同時(shí),由于待執(zhí)行代碼段只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行,因此能夠限制非標(biāo)準(zhǔn)客戶端使用服務(wù)提供者提供的服務(wù),也即是能夠防止api的盜用。
實(shí)施例三
圖4示出了本發(fā)明實(shí)施例三提供的服務(wù)端的具體結(jié)構(gòu)框圖,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。該服務(wù)端4包括:連接建立單元41,代碼生成單元42,數(shù)據(jù)發(fā)送單元43,驗(yàn)證單元44,人機(jī)識(shí)別結(jié)果確定單元45。
其中,連接建立單元41,用于接收客戶端發(fā)送的操作請(qǐng)求,與上述客戶端建立連接;
代碼生成單元42,用于生成隨機(jī)代碼片段作為待執(zhí)行代碼段,其中,上述待執(zhí)行代碼段為只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行的代碼段;
數(shù)據(jù)發(fā)送單元43,用于將上述代碼生成單元42生成的待執(zhí)行代碼段發(fā)送至上述客戶端;
驗(yàn)證單元44,用于接收并驗(yàn)證上述客戶端發(fā)送的執(zhí)行了待執(zhí)行代碼段后的執(zhí)行結(jié)果;
人機(jī)識(shí)別結(jié)果確定單元45,用于在上述執(zhí)行結(jié)果通過(guò)上述驗(yàn)證單元44的驗(yàn)證時(shí),將人機(jī)識(shí)別結(jié)果確定為用戶在預(yù)設(shè)客戶端的操作,在上述執(zhí)行結(jié)果未通過(guò)上述驗(yàn)證單元44的驗(yàn)證時(shí),將人機(jī)識(shí)別結(jié)果確定為機(jī)器操作。
可選地,上述代碼生成單元42具體包括:
算法確定子單元,用于在預(yù)設(shè)的隨機(jī)算法庫(kù)中抽取任一隨機(jī)算法作為目標(biāo)隨機(jī)算法;
隨機(jī)函數(shù)生成子單元,用于調(diào)用上述目標(biāo)隨機(jī)算法生成函數(shù)名、變量名均隨機(jī)的隨機(jī)函數(shù),作為上述待執(zhí)行代碼段;
上述數(shù)據(jù)發(fā)送單元具體用于,將上述隨機(jī)函數(shù)生成子單元得到的待執(zhí)行代碼段放入http響應(yīng)體的隨機(jī)位置,發(fā)送至客戶端。
可選地,上述服務(wù)端還包括:
代碼加強(qiáng)單元,用于在上述代碼生成單元生成的待執(zhí)行代碼段中加入延時(shí)算法和/或客戶端的信息指紋。
由上可知,在本發(fā)明實(shí)施例中,服務(wù)端中生成只有在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下才能執(zhí)行的代碼段,并在接收了客戶端返回的執(zhí)行結(jié)果后進(jìn)行驗(yàn)證,實(shí)現(xiàn)對(duì)客戶端的人機(jī)識(shí)別,提供了透明的、用戶無(wú)感知的人機(jī)識(shí)別方法。運(yùn)用本發(fā)明方案,用戶無(wú)需再在客戶端的登錄、注冊(cè)等頁(yè)面輸入captcha,達(dá)到了用戶體驗(yàn)與安全性之間的平衡。同時(shí),由于待執(zhí)行代碼段只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行,因此能夠限制非標(biāo)準(zhǔn)客戶端使用服務(wù)提供者提供的服務(wù),也即是能夠防止api的盜用。
實(shí)施例四
圖5示出了本發(fā)明實(shí)施例四提供的客戶端的具體結(jié)構(gòu)框圖,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。該客戶端5包括:連接建立單元51,數(shù)據(jù)接收單元52,代碼執(zhí)行單元53,執(zhí)行結(jié)果發(fā)送單元54。
其中,連接建立單元51,用于向服務(wù)端發(fā)送操作請(qǐng)求,并與上述服務(wù)端建立連接;
數(shù)據(jù)接收單元52,用于接收上述服務(wù)端發(fā)送的待執(zhí)行代碼段,
代碼執(zhí)行單元53,用于執(zhí)行所述數(shù)據(jù)接收單元52接收的上述待執(zhí)行代碼段,得到執(zhí)行結(jié)果;
執(zhí)行結(jié)果發(fā)送單元54,用于將上述代碼執(zhí)行單元53得到的執(zhí)行結(jié)果發(fā)送至上述服務(wù)端,以便于上述服務(wù)端基于上述執(zhí)行結(jié)果進(jìn)行人機(jī)識(shí)別。
可選地,上述客戶端5為web客戶端,上述客戶端5還包括:
代碼保存單元,用于將上述數(shù)據(jù)接收單元52接收到的上述待執(zhí)行代碼片段保存于隨機(jī)位置。
上述代碼執(zhí)行單元,具體用于,在由上述代碼保存單元確定的隨機(jī)位置上執(zhí)行所述待執(zhí)行代碼段,得到執(zhí)行結(jié)果。
由上可見(jiàn),在本發(fā)明實(shí)施例中,客戶端在接收了待執(zhí)行代碼段后存放于隨機(jī)位置,以防止網(wǎng)絡(luò)機(jī)器人找到待執(zhí)行代碼段并完成暴力破解。同時(shí),由于服務(wù)端發(fā)送到客戶端的待執(zhí)行代碼段為只有在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下才能執(zhí)行的代碼段,因而在客戶端無(wú)需用戶再在登錄、注冊(cè)等頁(yè)面輸出captcha,達(dá)到了用戶體驗(yàn)與安全性之間的平衡,提供了透明的、用戶無(wú)感知的人機(jī)識(shí)別方法。同時(shí),由于待執(zhí)行代碼段只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行,因此能夠限制非標(biāo)準(zhǔn)客戶端使用服務(wù)提供者提供的服務(wù),也即是能夠防止api的盜用。
實(shí)施例五
圖6示出了本發(fā)明實(shí)施例五提供的人機(jī)識(shí)別系統(tǒng)的具體結(jié)構(gòu)框圖,為了便于說(shuō)明,僅示出了本發(fā)明實(shí)施例相關(guān)的部分。該人機(jī)識(shí)別系統(tǒng)6包括:服務(wù)端4及與上述服務(wù)端4連接的客戶端5。
客戶端5首先向服務(wù)端4發(fā)起操作請(qǐng)求,服務(wù)端4接收到請(qǐng)求后,調(diào)用隨機(jī)算法生成待執(zhí)行代碼段,并連同客戶端5向服務(wù)端4請(qǐng)求的頁(yè)面一起返回客戶端5,隨后用戶在客戶端5正常提交服務(wù)端4請(qǐng)求的用戶信息,同時(shí)客戶端5自動(dòng)執(zhí)行待執(zhí)行代碼段得到執(zhí)行結(jié)果,并將執(zhí)行結(jié)果與用戶提交的用戶信息一起發(fā)送至服務(wù)端4,服務(wù)端4首先檢驗(yàn)客戶端5發(fā)送的執(zhí)行結(jié)果,若驗(yàn)證通過(guò),則將人機(jī)識(shí)別結(jié)果確認(rèn)為用戶在預(yù)設(shè)客戶端的操作,繼續(xù)驗(yàn)證其他用戶信息,若驗(yàn)證未通過(guò),則將人機(jī)識(shí)別結(jié)果確認(rèn)為機(jī)器操作,服務(wù)端4可以選擇結(jié)束此次對(duì)話。
本發(fā)明實(shí)施例提供的人機(jī)識(shí)別系統(tǒng)可以應(yīng)用在前述對(duì)應(yīng)的方法實(shí)施例一及方法實(shí)施例二中,詳情參見(jiàn)上述實(shí)施例的描述,在此不再贅述。
在本方法實(shí)施例中,人機(jī)識(shí)別系統(tǒng)的服務(wù)端與客戶端先在客戶端的請(qǐng)求下建立連接,然后在服務(wù)端中生成只有在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下才能執(zhí)行的代碼段,并在接收了客戶端返回的執(zhí)行結(jié)果后進(jìn)行驗(yàn)證,實(shí)現(xiàn)對(duì)客戶端的人機(jī)識(shí)別,提供了透明的、用戶無(wú)感知的人機(jī)識(shí)別方法。運(yùn)用本發(fā)明方案,無(wú)需再在登錄、注冊(cè)等頁(yè)面要求用戶輸出captcha,達(dá)到了用戶體驗(yàn)與安全性之間的平衡。同時(shí),由于待執(zhí)行代碼段只能在預(yù)設(shè)的客戶端運(yùn)行環(huán)境下執(zhí)行,因此能夠限制非標(biāo)準(zhǔn)客戶端使用服務(wù)提供者提供的服務(wù),也即是能夠防止api的盜用。
需要說(shuō)明的是,在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,上述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)便描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其它順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和單元并不一定都是本發(fā)明所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其它實(shí)施例的相關(guān)描述。
以上為對(duì)本發(fā)明所提供的一種較佳實(shí)施例,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。