![web服务器日记中访问信息的保护_第1页](http://file4.renrendoc.com/view/b197d90439c1b5a8ea9bf2617465f889/b197d90439c1b5a8ea9bf2617465f8891.gif)
![web服务器日记中访问信息的保护_第2页](http://file4.renrendoc.com/view/b197d90439c1b5a8ea9bf2617465f889/b197d90439c1b5a8ea9bf2617465f8892.gif)
![web服务器日记中访问信息的保护_第3页](http://file4.renrendoc.com/view/b197d90439c1b5a8ea9bf2617465f889/b197d90439c1b5a8ea9bf2617465f8893.gif)
![web服务器日记中访问信息的保护_第4页](http://file4.renrendoc.com/view/b197d90439c1b5a8ea9bf2617465f889/b197d90439c1b5a8ea9bf2617465f8894.gif)
![web服务器日记中访问信息的保护_第5页](http://file4.renrendoc.com/view/b197d90439c1b5a8ea9bf2617465f889/b197d90439c1b5a8ea9bf2617465f8895.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
web服务器日记中访问信息的保护
0web测志技术网络已成为人们披露和获取信息的主要渠道之一。随着Internet的发展,Web服务器的数目也在不断膨胀,据统计目前全球网站已超过4000万个。许多Web服务器记录用户的每一次访问过程,并把这些信息写到Web日志中。随着用户访问信息的不断增加,Web服务器将积累下大量日志文件。对这些海量数据进行统计、分析和数据挖掘,将有助于了解网站各部分的利用情况,识别用户访问模式,进而协助网站管理者改善站点结构,预测用户行为,提高Internet信息服务的质量。各种Web服务器日志文件的格式和内容大致相同。根据W3C的标准,一般Web日志都包括诸如用户的IP地址、请求时间、方法(GET/POST等)、被请求网页或文件的URL、发送/接收字节数、协议版本等信息。表1列出了几种不同类型的Web日志。但是作者认为这些Web日志记录的时间信息并不完整。如表1所示,当用户访问一个网页时,只记录了该网页的请求时间(以下简称请求时间),而没有记录网页的访问结束时间(以下简称结束时间)。这将造成访问信息的丢失,给今后的分析工作带来困难。不能简单的用该用户下一次访问的请求时间代替本次访问的结束时间。如果用户只在同一个浏览器窗口中按顺序浏览网页,上述方法是可行的。但是设想用户打开多个浏览器窗口同时浏览一个网站,一个窗口发出请求访问网页A,稍后另一个请求网页B,显然B的请求时间不是A对应的访问结束时间。采用一些复杂的算法(如判断前一次请求的网页是否有URL指向后一次请求的网页等)分析Web日志,能够在一定程度上区分这种情况,识别用户的不同会话。但所得结果往往不是十分精确。本文针对当前Web日志存在的这种问题,提出一种能够在Web日志中记录完整时间信息的方法,并给出这种方法的具体实现。1把记录网页的结束时间作为特征Web日志之所以只记录了请求时间,和HTTP协议的无状态性有很大的关系。客户端浏览器和Web服务器之间采用HTTP协议交换信息。其过程如图1所示。1)浏览器和Web服务器建立连接。2)浏览器发送HTTP请求(HTTPRequest),请求访问服务器上的某个网页或文件。3)服务器收到请求后,产生一个HTTP应答(HTTPResponse),返回浏览器请求的内容。同时在Web日志里生成一条记录,记录与用户的本次请求有关的信息。完成这个过程后,连接被断开,服务器和浏览器失去联系,直到下一次请求发生。如果不做特殊处理,每次请求将不包含上一次请求的任何状态信息。因此普通情况下Web服务器不能获得用户浏览网页的结束时间。然而在电子商务等一些应用中,有必要在不同网页之间传递状态信息。因此人们设计了一些方法来弥补HTTP协议的这个缺陷。如:1)采用Cookie文件来保存临时信息。2)把状态信息作为请求字符串(QueryString),附在URL的后面:受此启发,作者提出一个通过在请求字符串中保存的状态信息来衔接用户在同一会话(即同一个浏览器窗口)中的一系列访问,从而达到记录网页访问结束时间的方法。该方法的主要实现思路是:1)在传统的Web日志记录中添加“Web日志记录序号(WeblogID)”和“结束时间”两个字段。2)Web服务器在收到一个HTTP请求时,生成一条Web日志记录,先写入请求时间等一些与其它普通的Web日志相同的信息,同时为这条记录分配唯一的序号,并把序号作为状态信息发送给浏览器,让其暂时保存。此时该条Web日志记录中的“结束时间”字段暂时为空。3)浏览器在切换浏览页面(也就是向服务器做下一次请求)时,把刚才获得的序号返回给Web服务器。服务器根据序号在Web日志找到相应的记录,然后把当前系统时间作为结束时间,写入到该条记录中去。2web测志实现方式在具体应用中,各个Web服务器的系统环境会有很大的区别。比如它们在操作系统(MSWindows,Unix,Linux),Web服务器软件(IIS,Apache),网站开发语言(静态HTML,动态脚本ASP、PHP、JSP),Web日志的保存方式(文本文件,数据库)等方面都有可能不同,因而Web日志的实现方式也会有一些变化。本节将具体讨论前面所述的Web日志的几个关键步骤和实现方法。(1)webing.最简单的是采用递增量,每生成一条记录就让它自增1,不过这要求服务器能存取当前递增量的值,并且为了使其在服务器意外重启时不至于丢失,必须在每一个WeblogID分配给用户之前把它保存到Web服务器的一个配置文件中,替换配置文件中诸如CurrentWeblogID的字段的值,服务器重启时就从该处读出当前的WeblogID并继续自增。另外可以采用系统时间戳作为WeblogID,但时间戳的精度要足够(至少为1毫秒),使得两个时间距离很近的HTTP请求不至于有相同的WeblogID。如果采用数据库来保存Web日志,数据库一般都有自增的Identity字段类型,也可以考虑由它来生成WeblogID。(2)双重恶意行为,即生成服务提取在Web服务器返回用户请求的网页时,截获该网页,重写该网页中所有指向其它网页的超链接,把WeblogID作为请求字符串附在这些超链的URL后面:<AHREF=“0/page1.html1...&weblogid=123456”&...>...</A><AHREF=“0/page2.html1...&weblogid=123456”&...>...</A>该方法需要有额外的程序来完成重写URL的工作。现在的许多Web服务器软件具有可扩展性,可以通过编写扩展模块来实现这项功能,比如IIS中的ISAPI过滤器等。(3)获取返回的webgWeblogID已经被附在请求URL的后面,服务器中的相应处理程序直接从中读出“&weblogid=...&”这一段即可获得返回的WeblogID。(4)率的变化如果服务器单位时间访问量很大,查找的效率将变得十分重要。这时应该对Web日志记录中的WeblogID字段建立索引,根据索引来查找记录,写入访问结束时间。(5)web体育软件基本功能在用户浏览完网页后关闭浏览器或者马上切换到其它网站的情况下,由于WeblogID没有被返回给服务器,该网页对应Web日志记录的结束时间为空。但只要用户按正常方式访问网站,这种记录在用户的访问记录中所占的比重很少,在日后分析时可以忽略不计,或者用请求时间加一个平均访问时长来代替。3使用示例作者在开发某“个性化行销网站”项目的“用户行为分析系统”中采用了上述的Web日志记录方法。下面对此作简要介绍。(1)数据库webgis网站开发采用Windows2000Server,IIS服务器,ASP动态脚本语言。Web日志被记录到SQLServer数据库WEBLOG表中。采用URL重写方式在浏览器和服务器之间传递WeblogID。URL重写由ISAPI过滤器来实现。(2)WEBLOG表结构略去了一些无关的字段WeblogIDBIGINT,IPAddressVARCHAR(15),PageURLVARCHAR(500),RequestTimeDATE,FinishTimeDATE,其中WeblogID字段为自增的IDENTITY。(3)webgoid获取该模块由VisualC++编写,主要功能是:截获Web服务器的HTTPResponse,在其报头(HTTPHeader)的Set-Cookie段中获取WeblogID,然后查找和重写每个URL,在其后附上WeblogID。模块文件名称为URLFilter.dll,其功能在DLL接口函数GetFilterVersion(),HttpFilterProc(),TerminateFilter()中实现。这里略去详细代码。(4)web沟通,生成web包制作此ASP代码将被包含在每一个网页的开头,实现记录Web日志的功能。<%‘和SQLServer数据库建立连结,ConnectString是连接字符串Setcn=Server.CreateObject(″ADODB.Connection″)cn.OpenConnectString‘写入在本次请求之前所浏览网页的访问结束时间WeblogID=Request.QueryString(″weblogid″)‘从URL中获取上一次会话的WeblogIDIfWeblogID<>″″thensql=″updateWEBLOGsetFinishTime=GETDATE()whereWeblogID=″&WeblogIDcn.Executesql‘查找相应记录,写入访问结束时间EndIf‘对本次HTTP请求,写入请求时间和其他相关信息,并生成新的WeblogIDsql=″insertintoWEBLOG″&″(IPAddress,PageURL,RequestTime)valuers(″&″′″&Request.ServerVariables(″REMOTEADDR″)&″′,″&″′″&Request.ServerVariables(″URL″&″′,″&″GETDATE());″&″select@@IDENTITYasWeblogID″‘插入新记录,返回新增的WeblogIDSetrs=cn.Execute(sql)Setrs=rs.NextRecordsetWeblogID=rs(″WeblogID″)‘获得数据库生成的WeblogIDrs.closecn.close‘把新的WeblogID写入到报头cookie中,以便让ISAPI过滤器获得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品保修合同
- 大型美食城招商合同范本
- 商住楼物业管理合同
- 汽车维修合同书范本
- 锅炉工合同书
- 我要出租房屋租赁合同范本
- 室内场景识别定位约束条件下的手机实例化AR方法研究
- 2025年外研版三年级起点七年级历史下册阶段测试试卷含答案
- 2025年浙教新版九年级历史下册阶段测试试卷含答案
- 2025年粤人版选修二地理上册阶段测试试卷
- 篮球俱乐部合伙协议
- 电力基建复工安全教育培训
- 2018注册环保工程师考试公共基础真题及答案
- 劳务经纪人培训
- 如何提高售后服务的快速响应能力
- 成人氧气吸入疗法-中华护理学会团体标准
- Unit-3-Reading-and-thinking课文详解课件-高中英语人教版必修第二册
- 高数(大一上)期末试题及答案
- 婚介公司红娘管理制度
- 煤矿电气试验规程
- 物业客服培训课件PPT模板
评论
0/150
提交评论