web服務(wù)器日記中訪問信息的保護(hù)_第1頁
web服務(wù)器日記中訪問信息的保護(hù)_第2頁
web服務(wù)器日記中訪問信息的保護(hù)_第3頁
web服務(wù)器日記中訪問信息的保護(hù)_第4頁
web服務(wù)器日記中訪問信息的保護(hù)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

web服務(wù)器日記中訪問信息的保護(hù)

0web測志技術(shù)網(wǎng)絡(luò)已成為人們披露和獲取信息的主要渠道之一。隨著Internet的發(fā)展,Web服務(wù)器的數(shù)目也在不斷膨脹,據(jù)統(tǒng)計目前全球網(wǎng)站已超過4000萬個。許多Web服務(wù)器記錄用戶的每一次訪問過程,并把這些信息寫到Web日志中。隨著用戶訪問信息的不斷增加,Web服務(wù)器將積累下大量日志文件。對這些海量數(shù)據(jù)進(jìn)行統(tǒng)計、分析和數(shù)據(jù)挖掘,將有助于了解網(wǎng)站各部分的利用情況,識別用戶訪問模式,進(jìn)而協(xié)助網(wǎng)站管理者改善站點結(jié)構(gòu),預(yù)測用戶行為,提高Internet信息服務(wù)的質(zhì)量。各種Web服務(wù)器日志文件的格式和內(nèi)容大致相同。根據(jù)W3C的標(biāo)準(zhǔn),一般Web日志都包括諸如用戶的IP地址、請求時間、方法(GET/POST等)、被請求網(wǎng)頁或文件的URL、發(fā)送/接收字節(jié)數(shù)、協(xié)議版本等信息。表1列出了幾種不同類型的Web日志。但是作者認(rèn)為這些Web日志記錄的時間信息并不完整。如表1所示,當(dāng)用戶訪問一個網(wǎng)頁時,只記錄了該網(wǎng)頁的請求時間(以下簡稱請求時間),而沒有記錄網(wǎng)頁的訪問結(jié)束時間(以下簡稱結(jié)束時間)。這將造成訪問信息的丟失,給今后的分析工作帶來困難。不能簡單的用該用戶下一次訪問的請求時間代替本次訪問的結(jié)束時間。如果用戶只在同一個瀏覽器窗口中按順序瀏覽網(wǎng)頁,上述方法是可行的。但是設(shè)想用戶打開多個瀏覽器窗口同時瀏覽一個網(wǎng)站,一個窗口發(fā)出請求訪問網(wǎng)頁A,稍后另一個請求網(wǎng)頁B,顯然B的請求時間不是A對應(yīng)的訪問結(jié)束時間。采用一些復(fù)雜的算法(如判斷前一次請求的網(wǎng)頁是否有URL指向后一次請求的網(wǎng)頁等)分析Web日志,能夠在一定程度上區(qū)分這種情況,識別用戶的不同會話。但所得結(jié)果往往不是十分精確。本文針對當(dāng)前Web日志存在的這種問題,提出一種能夠在Web日志中記錄完整時間信息的方法,并給出這種方法的具體實現(xiàn)。1把記錄網(wǎng)頁的結(jié)束時間作為特征Web日志之所以只記錄了請求時間,和HTTP協(xié)議的無狀態(tài)性有很大的關(guān)系??蛻舳藶g覽器和Web服務(wù)器之間采用HTTP協(xié)議交換信息。其過程如圖1所示。1)瀏覽器和Web服務(wù)器建立連接。2)瀏覽器發(fā)送HTTP請求(HTTPRequest),請求訪問服務(wù)器上的某個網(wǎng)頁或文件。3)服務(wù)器收到請求后,產(chǎn)生一個HTTP應(yīng)答(HTTPResponse),返回瀏覽器請求的內(nèi)容。同時在Web日志里生成一條記錄,記錄與用戶的本次請求有關(guān)的信息。完成這個過程后,連接被斷開,服務(wù)器和瀏覽器失去聯(lián)系,直到下一次請求發(fā)生。如果不做特殊處理,每次請求將不包含上一次請求的任何狀態(tài)信息。因此普通情況下Web服務(wù)器不能獲得用戶瀏覽網(wǎng)頁的結(jié)束時間。然而在電子商務(wù)等一些應(yīng)用中,有必要在不同網(wǎng)頁之間傳遞狀態(tài)信息。因此人們設(shè)計了一些方法來彌補(bǔ)HTTP協(xié)議的這個缺陷。如:1)采用Cookie文件來保存臨時信息。2)把狀態(tài)信息作為請求字符串(QueryString),附在URL的后面:受此啟發(fā),作者提出一個通過在請求字符串中保存的狀態(tài)信息來銜接用戶在同一會話(即同一個瀏覽器窗口)中的一系列訪問,從而達(dá)到記錄網(wǎng)頁訪問結(jié)束時間的方法。該方法的主要實現(xiàn)思路是:1)在傳統(tǒng)的Web日志記錄中添加“Web日志記錄序號(WeblogID)”和“結(jié)束時間”兩個字段。2)Web服務(wù)器在收到一個HTTP請求時,生成一條Web日志記錄,先寫入請求時間等一些與其它普通的Web日志相同的信息,同時為這條記錄分配唯一的序號,并把序號作為狀態(tài)信息發(fā)送給瀏覽器,讓其暫時保存。此時該條Web日志記錄中的“結(jié)束時間”字段暫時為空。3)瀏覽器在切換瀏覽頁面(也就是向服務(wù)器做下一次請求)時,把剛才獲得的序號返回給Web服務(wù)器。服務(wù)器根據(jù)序號在Web日志找到相應(yīng)的記錄,然后把當(dāng)前系統(tǒng)時間作為結(jié)束時間,寫入到該條記錄中去。2web測志實現(xiàn)方式在具體應(yīng)用中,各個Web服務(wù)器的系統(tǒng)環(huán)境會有很大的區(qū)別。比如它們在操作系統(tǒng)(MSWindows,Unix,Linux),Web服務(wù)器軟件(IIS,Apache),網(wǎng)站開發(fā)語言(靜態(tài)HTML,動態(tài)腳本ASP、PHP、JSP),Web日志的保存方式(文本文件,數(shù)據(jù)庫)等方面都有可能不同,因而Web日志的實現(xiàn)方式也會有一些變化。本節(jié)將具體討論前面所述的Web日志的幾個關(guān)鍵步驟和實現(xiàn)方法。(1)webing.最簡單的是采用遞增量,每生成一條記錄就讓它自增1,不過這要求服務(wù)器能存取當(dāng)前遞增量的值,并且為了使其在服務(wù)器意外重啟時不至于丟失,必須在每一個WeblogID分配給用戶之前把它保存到Web服務(wù)器的一個配置文件中,替換配置文件中諸如CurrentWeblogID的字段的值,服務(wù)器重啟時就從該處讀出當(dāng)前的WeblogID并繼續(xù)自增。另外可以采用系統(tǒng)時間戳作為WeblogID,但時間戳的精度要足夠(至少為1毫秒),使得兩個時間距離很近的HTTP請求不至于有相同的WeblogID。如果采用數(shù)據(jù)庫來保存Web日志,數(shù)據(jù)庫一般都有自增的Identity字段類型,也可以考慮由它來生成WeblogID。(2)雙重惡意行為,即生成服務(wù)提取在Web服務(wù)器返回用戶請求的網(wǎng)頁時,截獲該網(wǎng)頁,重寫該網(wǎng)頁中所有指向其它網(wǎng)頁的超鏈接,把WeblogID作為請求字符串附在這些超鏈的URL后面:<AHREF=“0/page1.html1...&weblogid=123456”&...>...</A><AHREF=“0/page2.html1...&weblogid=123456”&...>...</A>該方法需要有額外的程序來完成重寫URL的工作。現(xiàn)在的許多Web服務(wù)器軟件具有可擴(kuò)展性,可以通過編寫擴(kuò)展模塊來實現(xiàn)這項功能,比如IIS中的ISAPI過濾器等。(3)獲取返回的webgWeblogID已經(jīng)被附在請求URL的后面,服務(wù)器中的相應(yīng)處理程序直接從中讀出“&weblogid=...&”這一段即可獲得返回的WeblogID。(4)率的變化如果服務(wù)器單位時間訪問量很大,查找的效率將變得十分重要。這時應(yīng)該對Web日志記錄中的WeblogID字段建立索引,根據(jù)索引來查找記錄,寫入訪問結(jié)束時間。(5)web體育軟件基本功能在用戶瀏覽完網(wǎng)頁后關(guān)閉瀏覽器或者馬上切換到其它網(wǎng)站的情況下,由于WeblogID沒有被返回給服務(wù)器,該網(wǎng)頁對應(yīng)Web日志記錄的結(jié)束時間為空。但只要用戶按正常方式訪問網(wǎng)站,這種記錄在用戶的訪問記錄中所占的比重很少,在日后分析時可以忽略不計,或者用請求時間加一個平均訪問時長來代替。3使用示例作者在開發(fā)某“個性化行銷網(wǎng)站”項目的“用戶行為分析系統(tǒng)”中采用了上述的Web日志記錄方法。下面對此作簡要介紹。(1)數(shù)據(jù)庫webgis網(wǎng)站開發(fā)采用Windows2000Server,IIS服務(wù)器,ASP動態(tài)腳本語言。Web日志被記錄到SQLServer數(shù)據(jù)庫WEBLOG表中。采用URL重寫方式在瀏覽器和服務(wù)器之間傳遞WeblogID。URL重寫由ISAPI過濾器來實現(xiàn)。(2)WEBLOG表結(jié)構(gòu)略去了一些無關(guān)的字段WeblogIDBIGINT,IPAddressVARCHAR(15),PageURLVARCHAR(500),RequestTimeDATE,FinishTimeDATE,其中WeblogID字段為自增的IDENTITY。(3)webgoid獲取該模塊由VisualC++編寫,主要功能是:截獲Web服務(wù)器的HTTPResponse,在其報頭(HTTPHeader)的Set-Cookie段中獲取WeblogID,然后查找和重寫每個URL,在其后附上WeblogID。模塊文件名稱為URLFilter.dll,其功能在DLL接口函數(shù)GetFilterVersion(),HttpFilterProc(),TerminateFilter()中實現(xiàn)。這里略去詳細(xì)代碼。(4)web溝通,生成web包制作此ASP代碼將被包含在每一個網(wǎng)頁的開頭,實現(xiàn)記錄Web日志的功能。<%‘和SQLServer數(shù)據(jù)庫建立連結(jié),ConnectString是連接字符串Setcn=Server.CreateObject(″ADODB.Connection″)cn.OpenConnectString‘寫入在本次請求之前所瀏覽網(wǎng)頁的訪問結(jié)束時間WeblogID=Request.QueryString(″weblogid″)‘從URL中獲取上一次會話的WeblogIDIfWeblogID<>″″thensql=″updateWEBLOGsetFinishTime=GETDATE()whereWeblogID=″&WeblogIDcn.Executesql‘查找相應(yīng)記錄,寫入訪問結(jié)束時間EndIf‘對本次HTTP請求,寫入請求時間和其他相關(guān)信息,并生成新的WeblogIDsql=″insertintoWEBLOG″&″(IPAddress,PageURL,RequestTime)valuers(″&″′″&Request.ServerVariables(″REMOTEADDR″)&″′,″&″′″&Request.ServerVariables(″URL″&″′,″&″GETDATE());″&″select@@IDENTITYasWeblogID″‘插入新記錄,返回新增的WeblogIDSetrs=cn.Execute(sql)Setrs=rs.NextRecordsetWeblogID=rs(″WeblogID″)‘獲得數(shù)據(jù)庫生成的WeblogIDrs.closecn.close‘把新的WeblogID寫入到報頭cookie中,以便讓ISAPI過濾器獲得

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論