东文网络  
     首页 焦点推荐 网站设计 网络安全 网站运营 经典网站 菜鸟学校 数字传媒 网站推广 搜索优化 域名拍卖 风云人物 电脑常识 电脑专家 专业建站 网店圈圈
 
  您现在的位置: 东文网络/网站设计/程序设计
常见ASP程序漏洞---防范补救篇
 
双击自动滚屏 发布者:东文网络 来源网络发布时间:2008-2-26

常见ASP程序的两大漏洞,相信大家已经很清楚他们的形成过程了,那么怎么样有效的防治便成为了我们的行文目的。
易理解性、易测试性、易修改性是衡量一套软件程序可维护性的重要标志。ASP程序同样如此,要想防范ASP程序常见的这几种错误,首先在编写代码的时候就要注意以下两个方面:
1. 针对变量未过滤型漏洞
尽量少的取用用户提交的变量数据。对每个带入SQL语句的变量,应该使用replace函数剔除特殊字符,如下所示:
replace(id,"’","’’")
replace(id,";","’’")
replace(id,"--","’’")
replace(id,"(","’’")
这样就将变量id中的单引号(’)、分号(;)、注释符(--)、左括号(()全部都替换成两个单引号(’’)。而且这些替换与判断工作应尽量放在一起、靠近SQL语句,方便以后的复查工作。特别注意的是,对于字段属性是数字的变量,我们最好还应该使用cint()或IsNumeric()函数来判断Request得到的数据是否是整数型。如下所示:
If ID <> "" then ID = cint(ID)
If isNumeric(ID) = 0 Then ID = 0
如果,编写的是留言本、或者是论坛的话,还应该考虑到用户发帖的长度,以及用户发帖的时间间隔等问题。

2. 针对逻辑错误漏洞
构建良好的程序逻辑结构。对于简单的新闻系统来讲,在管理员后台的编写时,所有文件推荐用“admin_”这种特定标记开头,这样方便以后的复查工作。然后专门写一个检查管理员登陆的session变量的文件session.asp,除开admin_login.asp管理员登陆的登陆页面,以及检查管理员账号密码,产生登陆session的admin_chklogin.asp以外,其他所有的后台文件,都在第一行写入 来检查管理员是否登陆。
其中,稍微要注意的是验证管理员账号密码,以及产生登陆session的admin_chklogin.asp文件的编写,有的时候管理员就是喜欢使用单引号等特殊字符来做密码,我们当然就不能将这些字符过滤了!而且,为了避免在虚拟机上让其他人有机可乘,session信息也应该使用变量来设置。笔者的写法如下:
username = Request.Form("username")
password = Request.Form("password")
if username="" or password="" then Response.Redirect ("admin_login.asp")
set rs=conn.execute("SELECT top 1 Admin_name,Admin_password FROM Admin")
Admin_name = rs("Admin_name")
Admin_password = rs("Admin_password")
if (username <> Admin_name)or(password <> Admin_password) then
Response.Redirect "Admin_login.asp"
else
Session("Admins")=Admin_password
Session("passwords") = Admin_name
Response.Redirect "Admin_admin.asp"
end if
rs.close
set rs=nothing

这样,通过精心的设计整个系统的权限认证过程,就能够基本上杜绝逻辑错误的产生。另外再提一点,不少人喜欢将Admin_login.asp管理员登陆界面或管理界面删除或改名,以次防范非法用户登陆,实际上这是种错误,第一,ASP程序本就是为了给用户提供方便的操作,不要给自己找麻烦;第二,删除或改名的应该是产生登陆session的admin_chklogin.asp文件,不要自欺欺人。只要能够得到判断管理员的登陆信息(比如session或cookies),就可以直接POST数据给后台那些控制数据库操作的文件,登陆界面或管理界面都只是摆设而已。
以上都只是根据漏洞的形成原因,从编写代码的角度来看的。但是,大多数人都不是ASP程序员,基本上都是略懂一点ASP语言,然后下载了ASP程序来使用。所以在为这些ASP程序排错的时候,一款好的帮手软件工具是不可少的。EditPlus就是一个不错的选择。
在EditPlus中,可以从一个目录下的所有文件中搜索出是否包含某个字符串,而且双击搜索结果,就可以自动打开该文件,并跳到该字符串前面。比如,想看看整套ASP程序中都在哪里获取了用户提交的数据,就可以搜索“Request”;想看看整套ASP程序中都在哪里执行了SQL语句,就可以搜索“ from ”,等等技巧。灵活的使用该工具做帮手,像动网tongji.asp那种漏洞,很快就可以查出来。网上也有不少该工具的具体使用指南,笔者就不多废话了。
限于篇幅,常见ASP程序漏洞的防范补救就简单的介绍这么多了。最后,希望大家能够多多留意网上的漏洞公告,及时地测查自己的ASP系统是否存在相类似的漏洞。 -东文网络专业建站,您信赖的网络专家-

不知该信息是否给您解决了问题,还有疑问请到留言建议向我们咨询 :)

 
也许你对下面的相关信息感兴趣:
ASP程序网站漏洞SQL通用防注入程序
ASP程序漏洞解析及黑客入侵防范方法
常见ASP程序漏洞---防范补救篇
很严重的mu页面asp程序漏洞
ASP程序漏洞全接触-高级篇
ASP程序漏洞全接触-进阶篇
ASP程序漏洞全接触-入门篇
ASP程序设计中如何防止漏洞全接触-高级
热点推荐新闻:
李彦宏:创业仅仅有一个好主意是不够的
55BBS韩华:80后美丽女孩的创业生活
360提示有漏洞,但win2000安装不
N70手机自动发彩信的病毒描述及解决方法
手机病毒N70已不容我们忽视,它威胁到我
组图:中国最美的六大草原及其传说
奇图探秘:唐三藏徒弟孙悟空真实原型之谜
二OO七年木马病毒“英雄榜”,你中过几个
小心“机器狗木马”破坏电脑系统(附查杀)
谁能娶女首富杨惠妍?将财色双得


打印本页 | 关闭窗口

------------------------

------------------------

------------------------
    Powered by dongwen.net 2007-2010 东文网络