网站异常检测工具的设计计算机毕业论文_第1页
网站异常检测工具的设计计算机毕业论文_第2页
网站异常检测工具的设计计算机毕业论文_第3页
网站异常检测工具的设计计算机毕业论文_第4页
网站异常检测工具的设计计算机毕业论文_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网站异常检测工具的设计计算机毕业论文网站异常检测工具的设计摘要:随着计算机网络规模和应用领域的日益增大,成千上万的网站不断被建立~极大的提高了信息的交流和共享程度。但目前大部分网站的安全性较低~存在着极大的信息风险和安全隐患~不时遭受到各种各样的攻击~经常出现不正常工作等现象。主要介绍了一个网站异常检测工具的设计实现~其主要包括网站异常检测模块、定时检测模块、托盘模块等五个功能模块。该工具使用VisualStudio.Net2008开发~不需要额外安装数据库和WEB服务器~配置简单~方便管理~具有较好的扩展性和可移植性。关键词:网站异常;检测;返回码ThedesignofaanomalydetectiontoolforawebsitedesignationZhiHuaFuInformationscienceandtechnologyschool,Zhanjiangnormaluniversity,Zhanjiang,524048ChinaAbstract:Withthesizeandapplicationofcomputernetworksincreasingthattensofthousandsofwebsiteshaveemergedwhichgreatlyincreasedinteractionandsharingwithinformation.Butmostofthesitesnowarelesssecure,thereareagreatdealofinformationrisksandsecurityrisksattackingthisandthatofsuchsiteswhichoccurfromtimetotime,meantime,frequentlyappearsabnormalworkappearance.Thispapermainlyintroducestheanomalydetectiontoolforawebsitedesignationandimplementation,mainlyincludesfivefunctionalmodules:siteanomalydetectionmodule,timingdetectionmodule,traymodule,startingwiththesystemmoduleandabnormalremindingmodule.ThistoolusestheVisualStudio.Net2008developmentwhichdoesnotneedextradatabaseinstallationandtheWEBserverandit'sdispositionissimpleandfacilitytomanageandwhichhasvigorousscalabilityandportability.Keywords:Siteanomalydetection;Detection,Backingnumber1目录1引言...............................................................31(1系统开发背景..................................................31(2主要采用的技术................................................32系统需求分析.......................................................32(1功能需求.........................................................................................................32(2约束.................................................................................................................42(3系统的逻辑模型..............................................................................................43系统功能实现.......................................................53(1网站异常检测功能实现...........................................53(2定时检测功能实现...............................................93(3托盘功能实现..................................................103(4随系统启动功能实现............................................123(5网站异常提醒功能实现..........................................144总结..............................................................15参考文献............................................................15致谢................................................................1621引言1(1系统开发背景随着Internet的不断发展,网络安全已经逐渐成为人们越来越关心的问题,异常检测方法也越来越受广大学者和工程人员的重视。网站异常的检测方法有很多,较常用的有基于域值的检测方法,基于统计的检测方法,基于小波的检测方法,基于马尔可夫等随机过程模型的方法和一些基于机器学习、数据挖掘和神经网络等检测方法,但是这些方法主要存在以下问题:(1)报警意义不明确;(2)可扩展性较差。针对以上方法存在的问题,设计了一个简单和方便的网站异常检测工具。1(2主要采用的技术每个软件的实现都离不开开发工具和关键技术的选择,这关系到工程的进度和软件的质量,本工具在这方面做了如下的选择。VisualStudio.NET2008。它是Microsoft的集成开发环境(IDE)。用于创建、[9]编辑、运行和调试采用多种.NET语言编写的程序。其中包含的VisualBasic.NET、[1]VisualC++.NET、VisualC#.NET等都是使用相同的可视化编程环境。采用了技术,.NETFramework两大核心组件:公共语言运行库、.NETFramework类库。更重要的是公共语言运行时(CLR),正是CLR为VB.NET带来了许多关键的新特色。所有使用CLR的语言都使用一个公共类型系统(CommonTypeSystem),它使得开发那些运用多语言的应用变得更为容易。在VB.NET中,一切都是对象。它意味着和以前的VB版本相比,我们从VB.NET本身获得的支持和功能要多得多,求助于WindowsAPI的时候将更少。2系统需求分析2(1功能需求[10]针对简单和方便要求,系统主要分为五大功能模块:(1)网站异常检测功能模块,主要负责捕获服务器返回的状态码;(2)定时检测功能模块,主要实现每隔一定的时间,对网站进行检测;(3)托盘功能模块,主要是使得系统在后台运行;(4)随系统启动功能模块,主要是令系统在开机时,能够自我启动;(5)网站异常提醒功能模块,主要是将分析结果通过不同方式,提醒用户。以下是该工具的用例图:3图2-1系统用例图2(2约束运行环境要求:由于写的程序都是托管程序,必须在有FRAMEWORK的系统下运行。2(3系统的逻辑模型以下是系统的配置图:图2-3系统配置图43系统功能实现3(1网站异常检测功能实现首先根据输入需要检测网站的URL地址建立连接,接着客户端发送请求,最后服务器进行响应,即服务器在处理完客户的请求之后,要向客户机发送响应消息。其响应消息是由状态行和应答头组成的;其中应答头包括服务器程序名,通知客户请求的URL需要认证,请求的资源何时能使用等。状态行的主要结构如下:(HTTP版本号,状态码,原因叙述)网站异常检测功能主要是负责捕获服务器发送响应消息中的状态码。以下是Http协议状态码的含义:表3-1Http协议状态码表状态代码状态信息含义100Continue初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP1.1新)101Switching服务器将遵从客户的请求转换到另外一种协议Protocols(HTTP1.1新)200OK一切正常,对GET和POST请求的应答文档跟在后面201Created服务器已经创建了文档,Location头给出了它的URL202Accepted已经接受请求,但处理还没完成203Non-Authouritative文档已经正常地返回,但一些应答头可能不正确,Information因为使用的是文档的拷贝205ResetContent没有新的内容,但浏览器应该重置它所显示内容206PartialContent发送了一个带有Range头的GET请求,服务器完成了它300MultipleChoices请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。301MovedPermanently请求的文档在其他地方,浏览器自动地访问新URL302Found类似于301,但新的URL被视为临时的代替,而不5是永久性的303SeeOther类似于301、302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取304NotModified服务器告诉客户,原来缓冲文档还可以使用305UseProxy客户请求文档应通过Location头所指明的服务器提取307TemporaryRedirect和302(Found)相同400BadRequest请求出现语法错误401Unauthorized客户试图没经授权访问受密码保护的页面403Forbidden资源不可用404NotFound无法找到指定位置的资源405MethodNotAllowed请求方法对指定的资源不适用406NotAcceptable指定的资源已找到,但它的MIME类型和客户在Accept头中所指定的不兼容407Proxy类似于401,表示客户必须先经过代理服务器的授Authentication权Required408Request在服务器许可的等待时间内,客户一直没有发出任何请求409Conflic由于请求和资源的当前状态向冲突,因此请求不成功410Gone所请求的文档已经不再可用,而且服务器不知道应该重定向到哪个地址411LengthRequired服务器不能处理请求,除非客户发送一个Content-Length头412Precondition请求头中指定的一些前提条件失败Failed413RequestEntityTo目标文档的大小超过服务器当前愿意处理的大小6Large414RequestURLTooURL太长Long416RequestedRangeNot服务器不能满足客户在请求中指定的Range头Satisfiable500IternalServer服务器遇到了意料不到的情况,不能完成客户的Error请求501NotImplemented服务器不支持实现请求所需要的功能502BadGateWay服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答503Service服务器由于维护或者负载过重没能应答Unavailable504GatewayTimeout由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答505HTTPVersionNot服务器不支持请求中所指明的HTTP版本Supported采用.NETFramework类库中System.Net命名空间的WebRequest类、[2]HttpWebRequest类和HttpWebResponse类来实现。(1)通过WebRequest类,建立连接并向服务器发送请求;(2)通过HttpWebRequest类中的GetResponse方法获得来自Internet资源的响应并Ctype转化为HttpWebResponse消息;(3)通过HttpWebResponse类中StatusCode属性获取响应的状态。实现关键代码如下:首先对输入的URL地址进行判断是否正确:'判断URL格式函数PublicSharedFunctionIsUrl(ByValstrTmpAsString)AsBooleanOnErrorGoToZDimobjIntPatternAsNewSystem.Text.RegularExpressions.Regex("^https?://([\w-]+(\.[\w-]+)7+(\/[\w-.\/\?%&=\u4e00-\u9fa5]*)?)?$")'采用正则表达式进行判断ReturnobjIntPattern.IsMatch(strTmp)Z:EndFunction正则表达式是具有特殊格式的字符串,用于查找文本模式。它在信息验证中非常有用,可确保数据具有特定格式;通常,要用一个大的、复杂的正则表达式来验证程[7]序的语法。如程序代码不和正则表达式匹配,编译器就知道代码中存在语法错误。接着对合法的URL地址,进行异常检测:'http返回码获取PublicFunctionstatuscode()DimiAsIntegerDimresAsHttpWebResponseDimreqAsHttpWebRequest=_WebRequest.Create(TextBox1.Text)'建立连接i=valueTryres=CType(req.GetResponse(),HttpWebResponse)'转化为HttpWebResponse消息value=res.StatusCodeCatchexAsException'利用异常处理程序捕获异常返回码Returnex.Message'ExitFunctionEndTrySystem.Threading.Thread.Sleep(10000)SelectCaseiCase200Return("HTTP_OK一切正常"&""&i)..CaseElse8Return("网络延迟或无法从响应中识别任何代码~请稍等......"&""&i)EndSelectEndFunction3(2定时检测功能实现定时检测功能主要是通过设定一个参数(正整数),使客户机每隔相应的时间,再次建立连接和发送请求,最后在服务器返回信息中,捕获状态码,并根据状态码判断该网站是否发生异常现象。采用Timer控件来实现。Timer控件用于在一个指定的时间间隔后,周期性地触[3]发Tick事件,并执行事件中相应的代码。使用Timer控件可以完成自动控制工作。Timer控件的属性比较少,主要的Interval属性用来设置时间间隔,单位为毫[4]秒。当Enable属性值为True时,启动Timer控件,默认值为False。Timer控件的主要方法为Start,用于打开Timer控件,并自动将Enable属性设置为True。Stop方法用于关闭Timer控件,并自动将Enable属性设置为False。Timer控件的主要事件为Tick,在程序设计过程中,需要先设置Interval属性的值,再在Timer控件的Tick事件中编写代码。定时检测功能实现的代码如下:(1)先设置时间间隔:'设置检测时间间隔PrivateSubTextBox2_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBox2.TextChangedIfTextBox2.Text=""Then'不设置时间间隔时,默认1分钟Timer1.Interval=60000ElseTimer1.Interval=TextBox2.Text*60000EndIfEndSub(2)编写触发事件:'计时器触发事件PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAs9System.EventArgs)HandlesTimer1.TickIfRadioButton1.Checked=TrueThenMsgBox(statuscode())'对话框消息提醒模式ElseIfRadioButton2.Checked=TrueThenwrite()'文件记录模式EndIfEndSub(3)启动Timer控件Me.Timer1.Enabled=True3(3托盘功能实现托盘功能主要是讲在Windows任务栏中显示一个图标,来指示在后台运行的程序,这些程序大部分时间不显示它们的用户界面,例如防病毒程序、音量设置程序以及汉字输入法程序等。当鼠标指针移到这些图标上时,会显示出工具提示文本,单击[1]或右击鼠标时会弹出一个上下文菜单来实现程序的功能。采用Notifylcon控件实现。托盘功能是指这样一类程序:当程序运行后,会在系统的托盘区创建此程序的图标,使用者可以通过点击图标出现的菜单来控制程序的[5]运行状态。托盘程序有很多优点,如不占屏幕,后台运行,便于控制等。Notifylcon控件可以在Windows任务栏中显示一个图标,来代表程序(类似于Flashget、OICQ[7]那种系统托盘图标)。它们一般都具有单击显示或隐藏主界面,击右键弹出菜单,当鼠标停在图标上时显示提示信息的功能。Notifylcon控件的常用属性,ContextMenu属性负责Notifylcon控件的上下文菜单,Icon属性负责要显示的图标,Text属性负责鼠标指针在Notifylcon控件的图标上时要显示的提示信息,Visible属性负责设置图标在Windows任务栏中是否可见。下面是实现的代码:(1)先进行各属性设置和布局规划:'NotifyIcon1Me.NotifyIcon1.ContextMenu=Me.ContextMenu1'利用ContextMenu控件Me.NotifyIcon1.Icon=CType(resources.GetObject("NotifyIcon1.Icon"),System.Drawing.Icon)10Me.NotifyIcon1.Text="网站异常捕获工具"Me.NotifyIcon1.Visible=True''ContextMenu1'Me.ContextMenu1.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem(){Me.MenuItem1,Me.MenuItem2,Me.MenuItem3})''MenuItem1'Me.MenuItem1.Index=0Me.MenuItem1.Text="显示窗体"''MenuItem2'Me.MenuItem2.Index=1Me.MenuItem2.Text="隐藏窗体"''MenuItem3'Me.MenuItem3.Index=2Me.MenuItem3.Text="退出"(2)为各种事件编写函数'显示托盘程序窗口PrivateSubMenuItem1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMenuItem1.ClickMe.WindowState=FormWindowState.NormalMe.FormBorderStyle=FormBorderStyle.FixedDialogMe.Show()11EndSub'隐藏托盘程序窗口PrivateSubMenuItem2_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMenuItem2.ClickMe.Hide()EndSub'推出托盘程序窗口PrivateSubMenuItem3_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMenuItem3.ClickNotifyIcon1.Dispose()Application.Exit()EndSub'双击图标显示窗体PrivateSubNotifyIcon1_DoubleClick(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesNotifyIcon1.DoubleClickMe.ShowInTaskbar=TrueMe.Show()Me.WindowState=FormWindowState.NormalEndSub'窗体缩小时,隐藏在状态栏PrivateSubForm1_Resize(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.ResizeIfMe.WindowState=FormWindowState.MinimizedThenMe.Hide()EndIfEndSub3(4随系统启动功能实现随系统启动功能主要是实现该工具和Windows系统同步启动,即开机自动加载,相当于一个Windows系统中的自启动项。12采用设置和读取注册表,可以实现我们的应用程序随Windows的启动即可执行的功能。利用VB.NET的Microsoft.Win32.命名空间中RegistryKey类来进行操作注册[8]表。以下实现代码:'修改注册表,使程序随机启动DimRegAsMicrosoft.Win32.RegistryKey'初始化PrivateSubInitVar()IfbtnSave.Visible=TrueThenEndIfReg=CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",True)IfReg.GetValue("网站异常捕获工具")<>""ThenCheckBox1.Checked=TrueElseCheckBox1.Checked=FalseEndIfEndSub在保存选项中,进行读写注册表,代码如下:'保存设置PrivateSubSaveSettings()IfCheckBox1.Checked=TrueThenReg=CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",True)Reg.SetValue("MengXianHui",Application.ExecutablePath)ElseReg=CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",13True)Reg.SetValue("MengXianHui","")EndIfInitVar()MessageBox.Show("您已经设置了,请重新启动计算机看效果。","提示",_MessageBoxButtons.OK,MessageBoxIcon.Information)IfCheckBox1.Checked=FalseThenMe.Dispose(True)EndIfEndSub3(5网站异常提醒功能实现网站异常提醒功能主要实现对异常检测的状态码进行判断,提醒方式实现了两)对话框提醒模式;(2)写入txt文件模式。种;(1采用消息框类(MsgBox)文件、文件和流来实现。其中消息框采用无模式,所谓文件,是指一些具有永久储存及特定顺序的字节组成的一个有序的、具有名称的集合。所谓流,是指从源通过通道流动到单个接收器的数据流,在.NETFramework中进行[9]所以的输入和输出都要用到流。以下是实现代码:(1)对话框消息提醒模式:MsgBox(statuscode())'对话框消息提醒模式(2)写入txt文件提醒模式:'写入日志文件PublicSubwrite()DimpathAsString="c:\MyTest.txt"'如果不存在,创建一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论