一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān)的制作方法
【專利摘要】本發(fā)明公開了一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān),所述方法包括:Web網(wǎng)關(guān)攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端;Web網(wǎng)關(guān)對客戶端向Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對cookie信息的原始簽名信息;如果相同,則將所述HTTP請求報文發(fā)往Web服務(wù)器,否則,阻止將其發(fā)往Web服務(wù)器。根據(jù)本發(fā)明能夠在不影響Web服務(wù)器性能的基礎(chǔ)上,有效地識別出客戶端或中間設(shè)備對HTTP請求報文中cookie信息的篡改。
【專利說明】—種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān)。
【背景技術(shù)】
[0002]客戶端或中間設(shè)備與Web服務(wù)器進(jìn)行交互的HTTP請求報文中通常帶有cookie信息,cookie作為獨有的客戶端憑證,由網(wǎng)絡(luò)服務(wù)器或Web服務(wù)器生成并發(fā)送存儲在對該服務(wù)器進(jìn)行訪問的客戶端的瀏覽器上,從而當(dāng)下次該同一訪客又回到該網(wǎng)絡(luò)服務(wù)器/Web服務(wù)器時,可從該訪客的瀏覽器讀回此信息。cookie能幫助Web服務(wù)器保存有關(guān)訪問者的信息,比如管理瀏覽網(wǎng)站的人數(shù),按照用戶的喜好定制網(wǎng)頁外觀,以及在電子商務(wù)中實現(xiàn)諸如“購物車”等等功能。但是cookie信息在缺乏安全的網(wǎng)絡(luò)傳輸環(huán)境中,存在很容易被篡改的風(fēng)險,為了消除非法的網(wǎng)絡(luò)訪問和由非法訪問帶來的網(wǎng)絡(luò)傳輸安全隱患,進(jìn)而給予訪客良好的體驗,必須阻止將cookie信息已篡改的HTTP請求報文發(fā)往Web服務(wù)器。
[0003]因此,有必要提供一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān),能夠基于cookie信息對發(fā)往服務(wù)器的HTTP請求報文進(jìn)行監(jiān)控,阻止將cookie信息已篡改的HTTP請求報文發(fā)往Web服務(wù)器,以解決上述技術(shù)問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān),能夠基于cookie信息對發(fā)往服務(wù)器的HTTP請求報文進(jìn)行監(jiān)控,阻止將cookie信息已篡改的HTTP請求報文發(fā)往Web服務(wù)器,以提升網(wǎng)絡(luò)傳輸、訪問的安全,進(jìn)而給與訪客良好的體驗。
[0005]根據(jù)本發(fā)明的一個方面,提供一種基于cookie信息的HTTP請求報文的監(jiān)控方法,包括以下步驟:步驟SI,Web網(wǎng)關(guān)攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對所述HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端;步驟S2,Web網(wǎng)關(guān)對客戶端向所述Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對所述cookie信息的原始簽名信息;步驟S3,如果由所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對該cookie信息原始簽名信息相同,則將所述HTTP請求報文發(fā)往Web服務(wù)器,否則,阻止將其發(fā)往Web服務(wù)器。
[0006]其中,在上述發(fā)明中,所述步驟SI之前包括:步驟S0,客戶端向Web服務(wù)器發(fā)送HTTP請求報文。
[0007]其中,在上述發(fā)明中,所述步驟SI包括:步驟S11,Web網(wǎng)關(guān)攔截Web服務(wù)器端首次發(fā)往客戶端的HTTP響應(yīng)報文,對所述HTTP響應(yīng)報文頭域的cookie信息中的set-cookie字段進(jìn)行解析,解析出NAME = VALUE值對,此后,計算該VALUE字符串的MD5值,并記為MD5-VALUE ;步驟S12,通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE轉(zhuǎn)換為可見字符,并記為SIG-VALUE ;步驟S13,在所述HTTP響應(yīng)報文域中增加字段set-cookie:NAME = SIG-VALUE,實現(xiàn)對所述HTTP響應(yīng)報文頭域中的cookie信息的簽名。
[0008]其中,在上述發(fā)明中,所述步驟S2包括:步驟S21,Web網(wǎng)關(guān)對客戶端后續(xù)發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控;步驟S22,攔截所述HTTP請求報文,對該請求報文頭域的cookie信息中的cookie字段進(jìn)行解析,在解析出NAME = VALUE值對后,計算VALUE字符串的MD5值,并記為MD5-VALUE!;步驟S23,通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE'轉(zhuǎn)換為可見字符,并記為SIG-VALUE';步驟S24,比較所述SIG-VALUE'與已有的對該cookie字段的SIG-VALUE。
[0009]其中,在上述發(fā)明中,所述步驟S3還包括:如果所述SIG-VALUE'與所述SIG-VALUE相同,則在去掉所述SIG-VALUE'對應(yīng)的HTTP請求報文中的NAME = SIG-VALUE值對后,將該HTTP請求報文發(fā)往Web服務(wù)器。
[0010]根據(jù)本發(fā)明的另一個方面,提供一種基于cookie信息的HTTP請求報文的監(jiān)控網(wǎng)關(guān),包括:簽名單元,用于攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對所述HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端;請求報文監(jiān)控單元,用于對客戶端向所述Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對cookie信息的原始簽名信息;請求報文處理單元,用于如果由所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對該cookie信息原始簽名信息相同,將所述HTTP請求報文發(fā)往Web服務(wù)器,否則,阻止將其發(fā)往Web服務(wù)器。
[0011]其中,在上述發(fā)明中,還包括:所述網(wǎng)關(guān)包括Web網(wǎng)關(guān),連接于客戶端和Web服務(wù)器之間,客戶端和Web服務(wù)器之間通過所述Web網(wǎng)關(guān)進(jìn)行報文交互。
[0012]其中,在上述發(fā)明中,所述簽名單元包括:首次響應(yīng)攔截子單元、第一轉(zhuǎn)換子單元和簽名子單元;所述首次響應(yīng)攔截子單元用于攔截Web服務(wù)器端首次發(fā)往客戶端的HTTP響應(yīng)報文,對所述HTTP響應(yīng)報文頭域的cookie信息中的set-cookie字段進(jìn)行解析,解析出NAME = VALUE值對,此后,計算該VALUE字符串的MD5值,并記為MD5-VALUE ;所述第一轉(zhuǎn)換子單元用于通過BASE64轉(zhuǎn)換算法將所述VALUE字符串的MD5-VALUE轉(zhuǎn)換為可見字符,并記為SIG-VALUE ;所述簽名子單元用于在所述HTTP響應(yīng)報文域中增加字段set-cookie =NAME=SIG-VALUE,實現(xiàn)對所述HTTP響應(yīng)報文頭域中的cookie信息的簽名。
[0013]其中,在上述發(fā)明中,所述請求報文監(jiān)控單元包括:監(jiān)控子單元、攔截子單元、第二轉(zhuǎn)換子單元和比較子單元;所述監(jiān)控子單元用于對客戶端后續(xù)發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控;所述攔截子單元用于攔截所述HTTP請求報文,對該請求報文頭域的cookie信息中的cookie字段進(jìn)行解析,在解析出NAME = VALUE值對后,計算VALUE字符串的MD5值,并記為MD5-VALUE';所述第二轉(zhuǎn)換子單元用于通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE'轉(zhuǎn)換為可見字符,并記為SIG-VALUE^ ;所述比較子單元用于比較所述SIG-VALUE'與已有的對該cookie字段的SIG-VALUE。
[0014]其中,在上述發(fā)明中,所述請求報文處理單元在所述SIG-VALUE'與所述SIG-VALUE相同時,去掉所述SIG-VALUE'對應(yīng)的HTTP請求報文中的NAME = SIG-VALUE值對,并將去掉NAME = SIG-VALUE值對后的HTTP請求報文發(fā)往Web服務(wù)器。
[0015] 根據(jù)本發(fā)明的一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān),能夠在不影響Web服務(wù)器性能的基礎(chǔ)上,有效地識別出客戶端或中間設(shè)備對HTTP請求報文中cookie信息的篡改,進(jìn)而,可以根據(jù)需要阻止將cookie信息已篡改的HTTP請求報文發(fā)往Web服務(wù)器;另外,采用了將cookie的原始信息和簽名信息都發(fā)往客戶端的方法,使得不需要在Web網(wǎng)關(guān)上記錄大量的cookie值對信息,實現(xiàn)了零存儲,節(jié)省了 Web網(wǎng)關(guān)的內(nèi)存空間。由此,提升了網(wǎng)絡(luò)服務(wù)器傳輸訪問的安全性,并給予訪問用戶更好的體驗。
【專利附圖】
【附圖說明】
[0016]圖1顯示了本發(fā)明的基于cookie信息的HTTP請求報文的監(jiān)控的一實施例的原理圖;
[0017]圖2顯示了本發(fā)明一實施例的基于cookie信息的HTTP請求報文的監(jiān)控方法的流程圖;
[0018]圖3顯示了圖2中步驟SI的一實施例的子流程圖;
[0019]圖4顯示了圖2中步驟S2的一實施例的子流程圖;以及
[0020]圖5顯示了本發(fā)明一實施例的基于cookie信息的HTTP請求報文的監(jiān)控網(wǎng)關(guān)的結(jié)構(gòu)框圖。
【具體實施方式】
[0021]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明了,下面結(jié)合【具體實施方式】并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
[0022]圖1顯示了本發(fā)明的基于cookie信息的HTTP請求報文的監(jiān)控的一實施例的原理圖。
[0023]如圖1所示,Web網(wǎng)關(guān)部署在Web服務(wù)器的前端,客戶端和Web服務(wù)器交互的所有報文都經(jīng)過Web網(wǎng)關(guān)。在本發(fā)明中,Web網(wǎng)關(guān)作為客戶端和Web服務(wù)器的中間設(shè)備,用來識別客戶端與Web服務(wù)器間交互的HTTP請求報文中的cookie信息是否被篡改,并且能根據(jù)需要阻止被篡改cookie信息的HTTP請求報文發(fā)往Web服務(wù)器。其中,cookie信息是一個客戶端(client)與服務(wù)器(server)交互私有數(shù)據(jù)的總的稱呼,它包含兩個實例,一是server向client發(fā)送響應(yīng),其HTTP響應(yīng)頭域由set-cookie字段來傳遞,二是client向server發(fā)請求,其HTTP頭域由cookie字段來傳遞。
[0024]具體來說,Web網(wǎng)關(guān)攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,對HTTP響應(yīng)報文中cookie信息進(jìn)行簽名,然后將簽名后的cookie信息發(fā)往客戶端;客戶端后續(xù)發(fā)送的HTTP請求報文都會帶有該簽名信息,Web網(wǎng)關(guān)利用請求報文中的cookie信息產(chǎn)生的簽名與對其的原始簽名之間做比較所存在的異同,來確定報文中的cookie信息是否被篡改。
[0025]下面結(jié)合圖2所示,說明本發(fā)明的監(jiān)控方法的一實施例的流程。
[0026]首先,步驟SO,客戶端向Web服務(wù)器發(fā)送HTTP請求報文。
[0027]在一個實施方式中,客戶端向Web服務(wù)器發(fā)送HTTP請求報文,HTTP請求報文經(jīng)由Web網(wǎng)關(guān)到達(dá)Web服務(wù)器。其中,Web網(wǎng)關(guān)部署在Web服務(wù)器的前端,客戶端和Web服務(wù)器交互的所有報文都經(jīng)過Web網(wǎng)關(guān),當(dāng)客戶端向Web服務(wù)器發(fā)送HTTP請求報文,HTTP請求報文先到達(dá)Web網(wǎng)關(guān),再由Web網(wǎng)關(guān)轉(zhuǎn)發(fā)至Web服務(wù)器。
[0028]步驟SI,Web網(wǎng)關(guān)攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對所述HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端。
[0029]Web服務(wù)器接收到在步驟SO中客戶端向Web服務(wù)器發(fā)送的HTTP請求報文之后,會發(fā)送HTTP響應(yīng)報文回應(yīng)客戶端。其中,HTTP響應(yīng)報文中包含cookie信息,如包含:一個或多個設(shè)置set-cookie字段(HTTP響應(yīng)報文的頭域由set-cookie字段來傳遞),并且,通常一個set-cookie字段中只包含唯一的NAME = VALUE值對。因此,可以利用set-cookie字段實現(xiàn)對HTTP響應(yīng)報文中的cookie信息進(jìn)行簽名。
[0030]在一個實施例中,Web網(wǎng)關(guān)攔截來自Web服務(wù)器發(fā)出給客戶端的HTTP響應(yīng)報文,解析HTTP報文頭域(即HTTP響應(yīng)頭域)的cookie信息,即set-cookie字段,解析出NAME=VALUE值對,然后計算VALUE字符串的MD5值,記為MD5-VALUE,根據(jù)選用的MD5算法差異,其結(jié)果為固定長度的值,比如16位、32位、64位。進(jìn)一步,由于計算出的MD5值可能是不可見字符,需要將其轉(zhuǎn)化為可見字符,例如采用BASE64轉(zhuǎn)換算法,經(jīng)過轉(zhuǎn)換后的值記為SIG-VALUE,然后在HTTP響應(yīng)報文中增加一 set-cookie字段:NAME = SIG-VALUE,實現(xiàn)對HTTP響應(yīng)報文中cookie信息的簽名,最后將cookie信息簽名后的HTTP響應(yīng)報文發(fā)往客戶端。
[0031]步驟SI的一實施例如圖3所示具體流程。
[0032]步驟Sll,Web網(wǎng)關(guān)攔截Web服務(wù)器端首次發(fā)往客戶端的HTTP響應(yīng)報文,對所述HTTP響應(yīng)報文頭域中cookie信息進(jìn)行解析以獲得cookie信息值對、并進(jìn)行計算,如:對所述HTTP響應(yīng)報文頭域的set-cookie字段進(jìn)行解析,解析出NAME = VALUE值對,此后,計算該VALUE字符串的MD5值,并記為MD5-VALUE。
[0033]步驟S12,對計算結(jié)果進(jìn)行轉(zhuǎn)換,如:通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE轉(zhuǎn)換為可見字符,并記為SIG-VALUE。
[0034]步驟S13,在所述HTTP響應(yīng)報文域中增加簽名作為cookie信息的簽名信息,如:在所述HTTP響應(yīng)報文域中增加字段set-cookie:NAME = SIG-VALUE,實現(xiàn)對所述HTTP響應(yīng)報文頭域中的cookie信息的簽名。
[0035]在完成對HTTP響應(yīng)報文頭域中的cookie信息簽名后(即增加字段set-cookie:NAME = SIG-VALUE),將完成cookie信息簽名后的HTTP響應(yīng)報文發(fā)往客戶端,使得客戶端后續(xù)發(fā)送的HTTP請求報文都會帶有該簽名,例如:
[0036]cookie: NAME = VALUE,......NAME = SIG-VALUE。
[0037]這樣,經(jīng)網(wǎng)關(guān)簽名處理后的首次HTTP響應(yīng)報文的cookie信息中,有服務(wù)器發(fā)送給客戶端的原始cookie信息和對該原始的cookie信息的簽名信息,如:字段set-cookie:NAME = VALUE,以及新增的字段 set-cookie:NAME = SIG-VALUE。新增的該 set-cookie 字段實際上就是對VALUE的簽名,使得后續(xù)任何對VALUE的修改,都能通過簽名SIG-VALUE識別出來。
[0038]步驟S2,Web網(wǎng)關(guān)對客戶端向所述Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對cookie信息的原始簽名信息。
[0039]其中,客戶端發(fā)往服務(wù)器端的請求中cookie信息由HTTP請求報文頭域的cookie字段來傳遞。
[0040]在一個實施方式中,W eb網(wǎng)關(guān)攔截客戶端后續(xù)發(fā)送的請求報文,解析HTTP報文頭域的cookie字段,解析出NAME = VALUE值對,然后計算VALUE字符串的MD5值,記為MD5-VALUE,對MD5-VALUE 再做BASE64 轉(zhuǎn)換,得到 SIG-VALUE,然后將 SIG-VALUE 與步驟 SI 中對原來服務(wù)器發(fā)給客戶端的cookie信息的簽名SIG-VALUE相比較,如果一致,表明客戶端當(dāng)前發(fā)送的HTTP請求報文中的cookie信息沒有被篡改,否則表明客戶端當(dāng)前發(fā)送的HTTP請求報文中的cookie信息已經(jīng)被篡改,可根據(jù)需要,丟棄該報文。
[0041 ] 步驟S2的一實施例如圖4所示具體流程。
[0042]步驟S21,Web網(wǎng)關(guān)對客戶端后續(xù)發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控。
[0043]步驟S22,攔截所述HTTP請求報文,解析其中的cookie信息,如:對該請求報文頭域的cookie字段進(jìn)行解析,在解析出NAME = VALUE值對后,計算VALUE字符串的MD5值,并記為MD5-VALUE'。解析方式類似步驟S11,解析并計算cookie信息的值對。
[0044]步驟S23,類似步驟S12,將計算結(jié)果進(jìn)行轉(zhuǎn)換,如:通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE'轉(zhuǎn)換為可見字符,并記為SIG-VALUEi。
[0045]步驟S24,比較轉(zhuǎn)換后的結(jié)果與已有的簽名信息,如:比較所述SIG-VALUEi與已有的對該cookie字段的SIG-VALUE。
[0046]步驟S3,如果由所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對該cookie信息的原始簽名信息相同,則將所述HTTP請求報文發(fā)往Web服務(wù)器,否則,阻止將其發(fā)往Web服務(wù)器。
[0047]具體來說,如果監(jiān)控到客戶端后續(xù)發(fā)送的HTTP請求報文中cookie信息產(chǎn)生的簽名信息與原始簽名信息相同,表明該HTTP請求報文中cookie信息未被篡改,即cookie信息仍然保留有用戶上次的訪問信息,則將該HTTP請求報文發(fā)往Web服務(wù)器。優(yōu)選地,在將cookie信息未被篡改的HTTP請求報文發(fā)往Web服務(wù)器之前,先去掉HTTP請求報文中的NAME = SIG-VALUE值對,使得Web服務(wù)器能正常解析該HTTP請求報文中的NAME = VALUE值對。
[0048]如果監(jiān)控到客戶端后續(xù)發(fā)送的HTTP請求報文中cookie信息產(chǎn)生的簽名信息與原始簽名信息不相同,表明該HTTP請求報文中cookie信息已被篡改,則根據(jù)需要可丟棄該HTTP請求報文,阻止將其發(fā)往Web服務(wù)器。
[0049]通過采用上述流程,先對Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文中的cookie信息進(jìn)行簽名,使得客戶端后續(xù)發(fā)送的HTTP響應(yīng)報文中的均帶有簽名的cookie信息,然后利用請求報文中的cookie信息產(chǎn)生的簽名與對其的原始簽名之間做比較所存在的異同,來確定報文中的cookie信息是否被篡改,能夠有效識別出客戶端或中間設(shè)備是否篡改了HTTP請求報文中的cookie信息。
[0050]下面結(jié)合圖5所示,說明本發(fā)明的網(wǎng)關(guān)的一實施例的結(jié)構(gòu)。
[0051]在一個實施方式中,該網(wǎng)關(guān),可以是web網(wǎng)關(guān),設(shè)置在web服務(wù)器前端,連接于客戶端和web服務(wù)器之間,客戶端和Web服務(wù)器交互的所有報文都經(jīng)過Web網(wǎng)關(guān),具體地,客戶端向Web服務(wù)器發(fā)送HTTP請求報文,HTTP請求報文先到達(dá)Web網(wǎng)關(guān),再由Web網(wǎng)關(guān)轉(zhuǎn)發(fā)至Web服務(wù)器,而Web服務(wù)器對請求作出響應(yīng)則會向該客戶端返回HTTP響應(yīng)報文,響應(yīng)報文先到達(dá)Web網(wǎng)關(guān),再由Web網(wǎng)關(guān)轉(zhuǎn)發(fā)至該客戶端。
[0052]所述網(wǎng)關(guān)至少包括以下部件:簽名單元510、請求報文監(jiān)控單元520和請求報文處理單元530。
[0053]簽名單元510,用于攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對所述HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端。具體功能和處理方式可以參見步驟SI的描述。
[0054]該簽名單元510具體包括首次響應(yīng)攔截子單元511、第一轉(zhuǎn)換子單元512和簽名子單元513。如圖5所示簽名單元510的結(jié)構(gòu)框圖。
[0055]首次響應(yīng)攔截子單元511,用于攔截Web服務(wù)器端首次發(fā)往客戶端的HTTP響應(yīng)報文,對所述HTTP響應(yīng)報文頭域中cookie信息進(jìn)行解析以獲得cookie信息值對、并進(jìn)行計算,如:對所述HTTP響應(yīng)報文頭域的set-cookie字段進(jìn)行解析,解析出NAME = VALUE值對,此后,計算該VALUE字符串的MD5值,并記為MD5-VALUE。具體功能和處理方式可以參見步驟Sll的描述。
[0056]第一轉(zhuǎn)換子單元512,用于對首次響應(yīng)攔截子單元511的計算結(jié)果進(jìn)行轉(zhuǎn)換,如:通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE轉(zhuǎn)換為可見字符,并記為SIG-VALUE。具體功能和處理方式可以參見步驟S12的描述。
[0057]簽名子單元513,用于在所述HTTP響應(yīng)報文域中增加簽名作為cookie信息的簽名信息,如:在所述HTTP響應(yīng)報文域中增加字段set-cookie:NAME = SIG-VALUE,實現(xiàn)對所述HTTP響應(yīng)報文頭域中的cookie信息的簽名。具體功能和處理方式可以參見步驟S13的描述。
[0058]請求報文監(jiān)控單元520,用于對客戶端向所述Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對cookie信息的原始簽名信息。具體功能和處理方式可以參見步驟S2的描述。
[0059]該請求報文監(jiān)控單元520具體包括監(jiān)控子單元521、攔截子單元522、第二轉(zhuǎn)換子單元523和比較子單元524。如圖5所示請求報文監(jiān)控單元520的結(jié)構(gòu)框圖。
[0060]監(jiān)控子單元521,用于對客戶端后續(xù)發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控。具體功能和處理方式可以參見步驟S21的描述。
[0061]攔截子單元522,用于攔截所述HTTP請求報文,解析其中的cookie信息,如:對該請求報文頭域的cookie字段進(jìn)行解析,在解析出NAME = VALUE值對后,計算VALUE字符串的MD5值,并記為MD5-VALUE'。具體功能和處理方式可以參見步驟S22的描述。
[0062] 第二轉(zhuǎn)換子單元523,通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE;轉(zhuǎn)換為可見字符,并記為SIG-VALUE^。具體功能和處理方式可以參見步驟S23的描述。
[0063]比較子單元524,用于比較所述SIG-VALUE '與已有的對該cookie字段的SIG-VALUE。具體功能和處理方式可以參見步驟S24的描述。
[0064]請求報文處理單元530,用于如果由所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對該cookie信息的原始簽名信息相同,則將所述HTTP請求報文發(fā)往Web服務(wù)器,否貝U,阻止將其發(fā)往Web服務(wù)器。具體功能和處理方式可以參見步驟S3的描述。
[0065]由于本實施例的網(wǎng)關(guān)所實現(xiàn)的處理及功能完全相應(yīng)于前述圖1-圖4所示的方法實施例,故本實施例的描述中未詳盡之處,可以參見前述實施例中的相關(guān)說明,在此不做贅述。
[0066]如上所述,根據(jù)本發(fā)明的一種基于cookie信息的HTTP請求報文的監(jiān)控方法及網(wǎng)關(guān),能夠在不影響Web服務(wù)器性能的基礎(chǔ)上,有效地識別出客戶端或中間設(shè)備對HTTP請求報文中cookie信息的篡改,進(jìn)而,可以根據(jù)需要阻止將cookie信息已篡改的HTTP請求報文發(fā)往Web服務(wù)器;另外,采用了將cookie的原始信息和簽名信息都發(fā)往客戶端的方法,使得不需要在Web網(wǎng)關(guān)上記錄大量的cookie值對信息,實現(xiàn)了零存儲,節(jié)省了 Web網(wǎng)關(guān)的內(nèi)存空間。由此,提升了網(wǎng)絡(luò)服務(wù)器傳輸訪問的安全性,并給予訪問用戶更好的體驗。
[0067]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
【權(quán)利要求】
1.一種基于cookie信息的HTTP請求報文的監(jiān)控方法,其特征在于,包括以下步驟: 步驟SI,Web網(wǎng)關(guān)攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對所述HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端; 步驟S2,Web網(wǎng)關(guān)對客戶端向所述Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對所述cookie信息的原始簽名信息; 步驟S3,如果由所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對該cookie信息原始簽名信息相同,則將所述HTTP請求報文發(fā)往Web服務(wù)器,否則,阻止將其發(fā)往Web服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟SI之前包括: 步驟SO,客戶端向Web服務(wù)器發(fā)送HTTP請求報文。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟SI包括: 步驟Sll,Web網(wǎng)關(guān)攔截Web服務(wù)器端首次發(fā)往客戶端的HTTP響應(yīng)報文,對所述HTTP響應(yīng)報文頭域的 cookie信息中的set-cookie字段進(jìn)行解析,解析出NAME = VALUE值對,此后,計算該VALUE字符串的MD5值,并記為MD5-VALUE ; 步驟S12,通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE轉(zhuǎn)換為可見字符,并記為SIG-VALUE ; 步驟S13,在所述HTTP響應(yīng)報文域中增加字段set-cookie:NAME = SIG-VALUE,實現(xiàn)對所述HTTP響應(yīng)報文頭域中的cookie信息的簽名。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟S2包括: 步驟S21,Web網(wǎng)關(guān)對客戶端后續(xù)發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控; 步驟S22,攔截所述HTTP請求報文,對該請求報文頭域的cookie信息中cookie字段進(jìn)行解析,在解析出NAME = VALUE值對后,計算VALUE字符串的MD5值,并記為MD5-VALUE,;步驟S23,通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE'轉(zhuǎn)換為可見字符,并記為SIG-VALUE'; 步驟S24,比較所述SIG-VALUE'與已有的對該cookie字段的SIG-VALUE。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟S3還包括: 如果所述SIG-VALUE'與所述sig-value相同,則在去掉所述sig-value'對應(yīng)的HTTP請求報文中的NAME = SIG-VALUE值對后,將該HTTP請求報文發(fā)往Web服務(wù)器。
6.一種基于cookie信息的HTTP請求報文的監(jiān)控網(wǎng)關(guān),其特征在于,包括: 簽名單元(510),用于攔截Web服務(wù)器首次發(fā)往客戶端的HTTP響應(yīng)報文,在對所述HTTP響應(yīng)報文中cookie信息簽名后,將其發(fā)往客戶端; 請求報文監(jiān)控單元(520),用于對客戶端向所述Web服務(wù)器發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控,比較監(jiān)控到的所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對cookie信息的原始簽名信息; 所述請求報文處理單元(530),用于如果由所述HTTP請求報文中cookie信息產(chǎn)生的簽名信息與對該cookie信息原始簽名信息相同,將所述HTTP請求報文發(fā)往Web服務(wù)器,否貝U,阻止將其發(fā)往Web服務(wù)器。
7.根據(jù)權(quán)利要求6所述的網(wǎng)關(guān),其特征在于,還包括:所述網(wǎng)關(guān)包括Web網(wǎng)關(guān),連接于客戶端和Web服務(wù)器之間,客戶端和Web服務(wù)器之間通過所述Web網(wǎng)關(guān)進(jìn)行報文交互。
8.根據(jù)權(quán)利要求6或7所述的網(wǎng)關(guān),其特征在于,所述簽名單元(510)包括:首次響應(yīng)攔截子單元(511)、第一轉(zhuǎn)換子單元(512)和簽名子單元(513);其中, 所述首次響應(yīng)攔截子單元(511)用于攔截Web服務(wù)器端首次發(fā)往客戶端的HTTP響應(yīng)報文,對所述HTTP響應(yīng)報文頭域的cookie信息中的set-cookie字段進(jìn)行解析,解析出NAME = VALUE值對,此后,計算該VALUE字符串的MD5值,并記為MD5-VALUE ; 所述第一轉(zhuǎn)換子單元(512)用于通過BASE64轉(zhuǎn)換算法將所述VALUE字符串的MD5-VALUE轉(zhuǎn)換為可見字符,并記為SIG-VALUE ; 所述簽名子單元(513)用于在所述HTTP響應(yīng)報文域中增加字段set-cookie =NAME =SIG-VALUE,實現(xiàn)對所述HTTP響應(yīng)報文頭域中的cookie信息的簽名。
9.根據(jù)權(quán)利要求6或7所述的網(wǎng)關(guān),其特征在于,所述請求報文監(jiān)控單元(520)包括:監(jiān)控子單元(521)、攔截子單元(522)、第二轉(zhuǎn)換子單元(523)和比較子單元(524);其中, 所述監(jiān)控子單元(521)用于對客戶端后續(xù)發(fā)送的HTTP請求報文進(jìn)行實時監(jiān)控; 所述攔截子單元(522)用于攔截所述HTTP請求報文,對該請求報文頭域的cookie信息中的cookie字段進(jìn)行解析,在解析出NAME = VALUE值對后,計算VALUE字符串的MD5值,并記為 MD5-VALUE'; 所述第二轉(zhuǎn)換子單元(523)用于通過BASE64轉(zhuǎn)換算法將計算出的所述VALUE字符串的MD5-VALUE'轉(zhuǎn)換為可見字符,并記為SIG-VALUE'; 所述比較子單元(524)用于比較所述SIG-VALUE !與已有的對該cookie字段的SIG-VALUEο
10.根據(jù)權(quán)利要求6或7所述的網(wǎng)關(guān),其特征在于,所述請求報文處理單元(530)在所述SIG-VALUEi與所述SIG-VALUE相同時,去掉所述SIG-VALUEi對應(yīng)的HTTP請求報文中的NAME = SIG-VALUE值對,并將去掉NAME = SIG-VALUE值對后的HTTP請求報文發(fā)往Web服務(wù)器。
【文檔編號】H04L29/06GK104079629SQ201410249415
【公開日】2014年10月1日 申請日期:2014年6月6日 優(yōu)先權(quán)日:2014年6月6日
【發(fā)明者】胡波 申請人:漢柏科技有限公司