我目前在学ASP(注意:不是ASP.NET)和JAVA。ASP只有一年不到的经验,所以如果文中有什么不妥之处请见谅,并请留言告知,谢谢了^-^.
1.在递交表单的时候可以用checkStr来check一下,这样可以过滤SQL非法字符。
函数定义:
使用方法:
2.过滤关键字。一般打开一个信息页面的时候都会出现类似于shownews.asp?id=2的地址,如果shownews.asp存在漏洞,很容易就会被注入,但是如果用HTMLEncode在shownews.asp页面中过滤一下关键字id,你就会发现扫描软件根本找不到注入点.
函数定义:
使用方法:
3.如果你有服务器管理权,最好把错误返回页面之相同一个页面,这样可以躲避很多软件的扫描。
4.如果你还是害怕数据库信息会被泄露,你可以构造难以想到的表名比如:dbajhkhkjsdfl等等,扫面软件扫面的表名是固定的,而人就更想不到了.
以上就是我这一年来对ASP防注的经验,一般来说如果你的功夫不深写代码都会出现注入漏洞,我想以上方法会对你有很大的帮助,如果你有什么好的方法,大家可以起交流^-^,
1.在递交表单的时候可以用checkStr来check一下,这样可以过滤SQL非法字符。
函数定义:
Rem
过滤SQL非法字符
function checkStr(str)
if isnull (str) then
checkStr = " "
exit function
end if
checkStr = replace (str, " ' " , " '' " )
end function
function checkStr(str)
if isnull (str) then
checkStr = " "
exit function
end if
checkStr = replace (str, " ' " , " '' " )
end function
使用方法:
check
=
checkStr(request.form(
"
check
"
))
2.过滤关键字。一般打开一个信息页面的时候都会出现类似于shownews.asp?id=2的地址,如果shownews.asp存在漏洞,很容易就会被注入,但是如果用HTMLEncode在shownews.asp页面中过滤一下关键字id,你就会发现扫描软件根本找不到注入点.
函数定义:
Rem
过滤HTML代码
function HTMLEncode(fString)
if not isnull (fString) then
fString = replace (fString, " > " , " > " )
fString = replace (fString, " < " , " < " )
fString = Replace (fString, CHR ( 32 ), " " )
fString = Replace (fString, CHR ( 9 ), " " )
fString = Replace (fString, CHR ( 34 ), " " " )
fString = Replace (fString, CHR ( 39 ), " ' " )
fString = Replace (fString, CHR ( 13 ), " <BR> " )
fString = Replace (fString, CHR ( 10 ) & CHR ( 10 ), " </P><P> " )
fString = Replace (fString, CHR ( 10 ), " <BR> " )
HTMLEncode = fString
else
HTMLEncode = fstring
end if
end function
function HTMLEncode(fString)
if not isnull (fString) then
fString = replace (fString, " > " , " > " )
fString = replace (fString, " < " , " < " )
fString = Replace (fString, CHR ( 32 ), " " )
fString = Replace (fString, CHR ( 9 ), " " )
fString = Replace (fString, CHR ( 34 ), " " " )
fString = Replace (fString, CHR ( 39 ), " ' " )
fString = Replace (fString, CHR ( 13 ), " <BR> " )
fString = Replace (fString, CHR ( 10 ) & CHR ( 10 ), " </P><P> " )
fString = Replace (fString, CHR ( 10 ), " <BR> " )
HTMLEncode = fString
else
HTMLEncode = fstring
end if
end function
id
=
HTMLEncode(id)
3.如果你有服务器管理权,最好把错误返回页面之相同一个页面,这样可以躲避很多软件的扫描。
4.如果你还是害怕数据库信息会被泄露,你可以构造难以想到的表名比如:dbajhkhkjsdfl等等,扫面软件扫面的表名是固定的,而人就更想不到了.
以上就是我这一年来对ASP防注的经验,一般来说如果你的功夫不深写代码都会出现注入漏洞,我想以上方法会对你有很大的帮助,如果你有什么好的方法,大家可以起交流^-^,