我目前在学ASP(注意:不是ASP.NET)和JAVA。ASP只有一年不到的经验,所以如果文中有什么不妥之处请见谅,并请留言告知,谢谢了^-^.
1.在递交表单的时候可以用checkStr来check一下,这样可以过滤SQL非法字符。
函数定义:
Rem 过滤SQL非法字符
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 使用方法:
id=HTMLEncode(id) 3.如果你有服务器管理权,最好把错误返回页面之相同一个页面,这样可以躲避很多软件的扫描。
4.如果你还是害怕数据库信息会被泄露,你可以构造难以想到的表名比如:dbajhkhkjsdfl等等,扫面软件扫面的表名是固定的,而人就更想不到了.
以上就是我这一年来对ASP防注的经验,一般来说如果你的功夫不深写代码都会出现注入漏洞,我想以上方法会对你有很大的帮助,如果你有什么好的方法,大家可以起交流^-^,QQ17477260 msn:tigertian17@hotmail.com
---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2005-07-06 12:03
TiGERTiAN 阅读(971)
评论(1) 编辑 收藏 所属分类:
VB/ASP