(A)定制出错网页 这个设置可以保证当错误出现时,本地用户访问默认出错页,远程用户访问自定义的error.htm网页。 (B)处理特别的HTTP请求 对于HTTP错误状态代码,例如:403禁止,404无法找到,500服务器错误等,可以自定义各自的出错处理页面。如下所示: 2.2.3 界面设计:代码分离和自定义控件 (1)代码分离:将程序代码和HTML内容分离,不仅能增强页面的条理性、易读性和团队开发的容易程度,更重要提高网页安全性。如: 前台aspx网页:peixun_base_ xiangmu.aspx.aspx <%@ Register TagPrefix= "iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="microsoft.web.ui.webcontrols" %> <%@ Page Language="vb" AutoEventWireup="false" Codebehind= "peixun_base_xiangmu.aspx.vb"Inherits="pxb.MUTI"%> 而后台的peixun_base_xiangmu.aspx.vb文件,专门编写代码,实现代码和HTML内容分离。 (2)自定义控件:可以根据需要编写自定义控件,更好地提供可重用的封装逻辑,在使用自定义控件前,需要将定义它们的类文件编译成动态库,即: vbc /t:library /r:system.dll /r:system.web.dll/out:pxbcontrols.dll control.vb 将编写好的类文件(.vb)编译成动态库(.dll),可以供以后多次使用,由于封装了逻辑,且生成库,所以安全性得到保障。 除上述外,必须要重视记录日志。日志文件分系统日志和用户自定义日志。系统日志,如建立数据库日志文件;自定义日志文件:可以利用global.asax文件的session_onStart()事件与session_onEnd()事件实现自定义日志文件维护,例如:记录访问用户的登录名,访问时间,IP地址等信息,在应用程序根目录的global.asax文件内添加如下代码: <%@ Import Namespace= "System.IO"%> Sub Session_onStart(Sender As Object, E As EventArgs) '每一位客户登录时触发该事件 sw=New StreamWriter(server.mappath("log/log.txt"),True,Encoding.Default) '将客户IP保存到Session中 Session("IP")= Request.ServerVariables("REMOTE_ADDR") sw.Writeline(Now() & "-用户" & Session("IP") & "进入") sw.Close End Sub Sub Session_OnEnd(Sender As Object, E As EventArgs) '当每一位客户超过会话时间没有和服务器交互,或关闭浏览器后触发该事件 sw=New StreamWriter(server.mappath("log/log.txt "),True,Encoding.Default) sw.Writeline(Now() & "-用户" &Session("IP") & "退出") sw.Close End Sub 2.3 发布运行阶段:主要考虑如下方面 (1) 关闭调试模式; (2) 备份转储数据库文件和日志文件; (3) 密码要不断更新; (4) 及时打补丁程序。 3总结 综上所述,基于ASP.NET的Web网络应用程序开发,在充分利用ASP.NET的安全机制、数据库安全控制、管理员网络安全防范意识的基础上,可以极大提高Web应用程序的安全性能。 参考文献 [1] [美]Steven A.Smith等.用实例学ASP.NET.马燕,闫立军等,译.北京:电子工业出版社,2002. [2] [美]Macro Bellinaso Kevin Hoffman.ASP.NET Web站点高级编程.康博,译.北京:清华大学出版社,2002. [3] [美]John Kauffman 等. ASP.NET数据库入门经典. 康博,译.北京:清华大学出版社,2002. [4] 章立民. 用实例学 Crystal Report for Visual Studio.NET.北京:电子工业出版社,2004. |