本申請涉及網(wǎng)絡(luò)技術(shù),特別涉及一種會話訪問方法和裝置。
背景技術(shù):
基于B/S(Browser/Server,瀏覽器/服務(wù)器)模式的互聯(lián)網(wǎng)應(yīng)用,在服務(wù)器為瀏覽器對應(yīng)的客戶端提供應(yīng)用數(shù)據(jù)時(shí),出于數(shù)據(jù)訪問的安全考慮,通常只將應(yīng)用數(shù)據(jù)授權(quán)給具有登錄權(quán)限的用戶。并且,該互聯(lián)網(wǎng)應(yīng)用的訪問是短鏈接的方式,客戶端每次向服務(wù)器發(fā)送數(shù)據(jù)請求時(shí)都要與服務(wù)器建立會話,并且攜帶會話標(biāo)識來保持對同一個(gè)應(yīng)用的訪問狀態(tài)。但是,由于會話標(biāo)識是存儲在客戶端,容易被隨意復(fù)制,一旦被其他終端復(fù)制該會話標(biāo)識并用以向服務(wù)器請求會話,將使應(yīng)用訪問存在安全隱患。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N會話訪問方法和裝置,以提高應(yīng)用訪問的安全性。
具體地,本申請是通過如下技術(shù)方案實(shí)現(xiàn)的:
第一方面,提供一種會話訪問方法,包括:
接收客戶端發(fā)送的服務(wù)訪問請求,所述服務(wù)訪問請求中包括客戶端所在終端的第一終端信息、以及用于標(biāo)識客戶端訪問服務(wù)會話的會話標(biāo)識;
獲取預(yù)先存儲的與所述會話標(biāo)識對應(yīng)的第二終端信息,在確定所述第一終端信息與第二終端信息相同時(shí),向所述客戶端返回服務(wù)訪問內(nèi)容。
第二方面,提供一種會話訪問裝置,包括:
請求接收模塊,用于接收客戶端發(fā)送的服務(wù)訪問請求,所述服務(wù)訪問請求中包括客戶端所在終端的第一終端信息、以及用于標(biāo)識客戶端訪問服務(wù)會話的會話標(biāo)識;
內(nèi)容反饋模塊,用于獲取預(yù)先存儲的與所述會話標(biāo)識對應(yīng)的第二終端信息,在確定所述第一終端信息與第二終端信息相同時(shí),向所述客戶端返回服務(wù)訪問內(nèi)容。
本申請?zhí)峁┑臅捲L問方法和裝置,通過在確定發(fā)送服務(wù)訪問請求的終端與存儲的終端相同時(shí),才向客戶端返回服務(wù)訪問內(nèi)容,可以避免終端不同時(shí)的會話訪問,從而提高了應(yīng)用訪問的安全性。
附圖說明
圖1是本申請一示例性實(shí)施例示出的一種互聯(lián)網(wǎng)應(yīng)用的訪問系統(tǒng);
圖2是本申請一示例性實(shí)施例示出的一種會話訪問方法的流程圖;
圖3是本申請一示例性實(shí)施例示出的另一種會話訪問方法的流程圖;
圖4是本申請一示例性實(shí)施例示出的一種會話訪問裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
圖1示例了B/S模式下的互聯(lián)網(wǎng)應(yīng)用的訪問系統(tǒng),該系統(tǒng)可以包括客戶端11和服務(wù)器12,例如,客戶端是通過終端13上運(yùn)行的瀏覽器打開的天貓網(wǎng)站,而服務(wù)器12是天貓網(wǎng)站對應(yīng)的天貓服務(wù)器。本申請實(shí)施例的會話訪問方法和裝置,應(yīng)用于客戶端和服務(wù)器之間的通信,如下首先簡單說明上述客戶端11與服務(wù)器12之間的通信特點(diǎn):
仍以上述的天貓客戶端對天貓服務(wù)器的訪問為例,在瀏覽器上顯示的天貓網(wǎng)站中的內(nèi)容可以是服務(wù)器12提供的,并且通常服務(wù)器12只將內(nèi)容提供給具有登錄權(quán)限的用戶,因此用戶會在天貓網(wǎng)站注冊得到賬號和密碼。
在得到賬號和密碼后,客戶端和瀏覽器之間的訪問采用短鏈接方式,具體的,例如,天貓網(wǎng)站上可以包括多個(gè)網(wǎng)絡(luò)資源的鏈接,比如服飾詳情鏈接、商家信息鏈接等,短鏈接方式的特點(diǎn)是,每次當(dāng)用戶點(diǎn)擊一個(gè)鏈接時(shí)(相當(dāng)于發(fā)起一次數(shù)據(jù)請求),都要與服務(wù)器建立一次會話,當(dāng)本次鏈接對應(yīng)的數(shù)據(jù)請求結(jié)束,則會話釋放;下一次再在天貓網(wǎng)站點(diǎn)擊下一個(gè)鏈接時(shí)(相當(dāng)于又發(fā)起一次數(shù)據(jù)請求),則又要建立一次會話。這多次的會話建立都是用戶在登錄天貓以后對天貓網(wǎng)站的訪問操作,也就是說,從用戶登錄天貓到退出對天貓的訪問,中間可能會向服務(wù)器發(fā)起多次數(shù)據(jù)請求,建立多次會話。
對于上述的訪問過程,服務(wù)器側(cè)會對該訪問進(jìn)行記錄,記錄方式是,對于用戶登錄天貓到退出對天貓的整個(gè)訪問過程,分配一個(gè)會話ID,在整個(gè)訪問中的多次會話,都攜帶該相同的會話ID,這樣服務(wù)器就可以據(jù)此確定該多次會話訪問都是對應(yīng)于同一個(gè)用戶對天貓的一次訪問。即某用戶在登錄天貓時(shí),服務(wù)器為其分配會話ID,在用戶訪問天貓的過程中,每次數(shù)據(jù)請求創(chuàng)建會話時(shí)都攜帶該會話ID,服務(wù)器根據(jù)該會話ID將用戶本次登錄的訪問過程關(guān)聯(lián)記錄,屬于同一個(gè)用戶對天貓的一次訪問。
本申請實(shí)施例的會話訪問方法,應(yīng)用于在用戶登錄天貓之后,每次創(chuàng)建會話時(shí),服務(wù)器側(cè)根據(jù)本實(shí)施例的會話訪問方法確定用戶是否有訪問權(quán)限。圖2示例了服務(wù)器執(zhí)行的會話訪問方法,包括:
201、接收客戶端發(fā)送的服務(wù)訪問請求,所述服務(wù)訪問請求中包括客戶端所在終端的第一終端信息、以及用于標(biāo)識客戶端訪問服務(wù)會話的會話標(biāo)識;
202、獲取預(yù)先存儲的與所述會話標(biāo)識對應(yīng)的第二終端信息,在確定所述第一終端信息與第二終端信息相同時(shí),向所述客戶端返回服務(wù)訪問內(nèi)容。
其中,在201中的服務(wù)訪問請求,例如是用戶在登錄天貓之后點(diǎn)擊網(wǎng)站上的一個(gè)資源鏈接,向服務(wù)器12發(fā)送所述的服務(wù)訪問請求??蛻舳丝梢栽谠? 請求中攜帶所在終端的終端信息,該客戶端所在終端例如是圖1中所示的終端13,客戶端天貓網(wǎng)站是運(yùn)行在該終端13的瀏覽器上;所述的終端信息例如是IP地址、MAC地址這類網(wǎng)絡(luò)連接屬性信息,這種信息具有較難復(fù)制的特點(diǎn)??蛻舳诉€在服務(wù)訪問請求中攜帶會話標(biāo)識,該會話標(biāo)識可以是用戶首次登錄天貓網(wǎng)站時(shí),服務(wù)器為用戶的本次訪問分配的會話ID。
在202中,服務(wù)器12可以將服務(wù)訪問請求中攜帶的終端信息,與本次預(yù)先存儲的與會話ID對應(yīng)的終端信息進(jìn)行比較,可以將服務(wù)訪問請求中攜帶的終端信息稱為第一終端信息,本地存儲的終端信息稱為第二終端信息,該第二終端信息可以是服務(wù)器在為用戶分配會話ID時(shí)記錄的。如果第一終端信息與第二終端信息相同,則可以確定是同一個(gè)終端發(fā)起的訪問,則可以向客戶端返回服務(wù)訪問內(nèi)容,比如對應(yīng)網(wǎng)站鏈接的數(shù)據(jù)資源。
通過圖2所示的會話訪問方法,服務(wù)器就可以確保訪問應(yīng)用的終端的一致性,防止不同終端之間復(fù)制會話ID的情況發(fā)生。比如,用戶在終端13上登錄天貓時(shí)服務(wù)器分配了訪問會話的會話ID,如果用戶在另一個(gè)終端上訪問天貓,即使仍然是同一賬號密碼對應(yīng)的同一用戶,但是更換終端后通常服務(wù)器側(cè)將終止本次訪問的授權(quán),而如果上述另一個(gè)終端也攜帶了會話ID,服務(wù)器側(cè)只根據(jù)會話ID判斷用戶是否有訪問權(quán)限,則容易造成在更換終端后仍然能夠訪問,這種隨意訪問增加了安全隱患。本實(shí)施例的服務(wù)器不僅根據(jù)會話ID,還根據(jù)終端信息,只有發(fā)起當(dāng)前會話的終端與授權(quán)會話時(shí)的終端相同時(shí),才允許繼續(xù)訪問,從而確保了訪問安全性。
圖3示例了服務(wù)器側(cè)處理會話訪問的另一流程圖,如圖3所示,包括:
301、接收所述客戶端發(fā)送的會話授權(quán)請求;
例如,用戶可以在天貓網(wǎng)站輸入賬號和密碼,攜帶在會話授權(quán)請求中提交到服務(wù)器進(jìn)行驗(yàn)證。該會話授權(quán)請求還可以包括客戶端所在的終端的終端信息,可以稱為第二終端信息,比如是終端的IP地址。
302、存儲會話標(biāo)識與第二終端信息的對應(yīng)關(guān)系;
例如,服務(wù)器接收到301中的會話授權(quán)請求后,對賬號和密碼進(jìn)行驗(yàn)證, 在驗(yàn)證通過后,為用戶的本次訪問分配會話標(biāo)識,并存儲該會話標(biāo)識與會話授權(quán)請求中攜帶的第二終端信息的對應(yīng)關(guān)系。
303、向所述客戶端返回授權(quán)的所述會話標(biāo)識;
例如,服務(wù)器在本步驟將為用戶分配的會話ID返回至客戶端。
304、接收客戶端發(fā)送的服務(wù)訪問請求;
例如,在用戶登錄天貓之后,點(diǎn)擊網(wǎng)站的資源鏈接發(fā)起服務(wù)訪問請求,該請求中攜帶上述303中分配的會話ID,還攜帶客戶端所在終端的終端信息,可以稱為第一終端信息。
305、獲取預(yù)先存儲的與所述會話標(biāo)識對應(yīng)的第二終端信息,在確定所述第一終端信息與第二終端信息相同;
例如,服務(wù)器根據(jù)304中的會話ID,獲取與該會話ID對應(yīng)的第二終端信息,并判斷第二終端信息與第一終端信息是否相同。如果不同,則表明本次訪問的終端不是服務(wù)器授權(quán)會話ID時(shí)的終端,則拒絕訪問;否則,繼續(xù)306,向用戶返回訪問內(nèi)容。
306、向所述客戶端返回服務(wù)訪問內(nèi)容。
為實(shí)現(xiàn)上述的會話訪問方法,本申請實(shí)施例還提供一種會話訪問裝置,該裝置應(yīng)用于服務(wù)器側(cè),如圖4所示,該裝置可以包括:請求接收模塊41和內(nèi)容反饋模塊42;其中,
請求接收模塊41,用于接收客戶端發(fā)送的服務(wù)訪問請求,所述服務(wù)訪問請求中包括客戶端所在終端的第一終端信息、以及用于標(biāo)識客戶端訪問服務(wù)會話的會話標(biāo)識;
例如,終端信息可以包括:終端的網(wǎng)絡(luò)連接屬性信息。所述網(wǎng)絡(luò)連接屬性信息,例如包括:終端的IP地址或者M(jìn)AC地址。
內(nèi)容反饋模塊42,用于獲取預(yù)先存儲的與所述會話標(biāo)識對應(yīng)的第二終端信息,在確定所述第一終端信息與第二終端信息相同時(shí),向所述客戶端返回服務(wù)訪問內(nèi)容。
進(jìn)一步的,所述請求接收模塊41,還用于在接收客戶端發(fā)送的服務(wù)訪問 請求之前,接收客戶端發(fā)送的會話授權(quán)請求,所述會話授權(quán)請求中包括所述第二終端信息;
所述內(nèi)容反饋模塊42,還用于向所述客戶端返回授權(quán)的所述會話標(biāo)識,并存儲所述會話標(biāo)識與所述第二終端信息的對應(yīng)關(guān)系。
以上所述僅為本申請的較佳實(shí)施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護(hù)的范圍之內(nèi)。