on err resume next 补上不算漏洞的漏洞
准确来说,“%5c” 暴库法本身不是网页程序的漏洞,而是由于 IIS 解码特性所造成的,如果 IIS 安全设置不周全,而网页设计者未考虑 IIS 错误,就会被人利用。但是“conn.asp”暴库法,却是由于网页程序设计得失误所造成的漏洞了。
如何防范暴库漏洞呢?从程序设计者的角度来说,既然暴库是由于 IIS 出错信息造成的,那么只需要屏蔽出错信息即可。因此,可在“conn.asp”数据库连接文件中,添加如下一条语句:
On Error Resume Next
该条语句的意思是,出错后恢复执行下面的语句,也就是不处理出错信息,也就不会返回出错信息了。如此即可防止暴库漏洞攻击。
一个完整的数据库防暴库代码如下:
[cc lang="asp"]
<%
Option Explicit
Response.Buffer = True
Dim Db
Dim ConnStr
Db="data/数据库路径"
ConnStr="Provide=Microsoft.Jet.OLEDB.4.0;Data Source="
& Server.Mappath(db)
On Error Resume Next
Set conn=server.reateObject(ADODB.Connection)
conn.open ConnStr
If Err Then
err.Clear
Set Conn=Nothing
Response.Write"数据库连接出错,请检查连接字串。"
Response.End
end if
%>
[/code]
使用该数据库连接文件,当进行暴库时,不会返回出错时的数据库信息,只是提示“数据库连接出错,请检查字串。”,这样即能让程序调试者获得足够的调试信息,又可有效地防止暴库漏洞攻击。