asp 获取参数值与sql安全过滤参数函数代码

文章出处:网络收集 作者:佚名 发布时间:2012-01-24

注:如本网转载的教程文章涉及版权等问题,请作者与我联系,我将在第一时间删除。谢谢!
联络邮箱(Contact E-mail):wzskynet#163.com

·用ASP木马实现FTP和解压缩
·ASP实现小偷程序原理和简单示例
·经典!5分钟编写一个ASP论坛
·ASP中将视频文件转换成.flv格式
·ASP中连接数据库的错误解决新解决办法
关键词:sql安全
下面的代码是从aspcms系统中扒下的代码,在获取参数值与sql安全过滤参数方面做了限制
复制代码 代码如下:

'获取参数值
Function getForm(element,ftype)
Select case ftype
case "get"
getForm=trim(request.QueryString(element))
case "post"
getForm=trim(request.Form(element))
case "both"
if isNul(request.QueryString(element)) then getForm=trim(request.Form(element)) else getForm=trim(request.QueryString(element))
End Select
getForm=replace(getForm,CHR(34),""")
getForm=replace(getForm,CHR(39),"'")
End Function
'主要功能就是获取参数值,比直接用request("element")要安全很多


'过滤参数
Function filterPara(byVal Para)
filterPara=preventSqlin(Checkxss(Para))
End Function

Function preventSqlin(content)
dim sqlStr,sqlArray,i,speStr
sqlStr="<|>|%|%27|'|''|;|*|and|exec|dbcc|alter|drop|insert|select|update|delete|count|master|truncate|char|declare|where|set|declare|mid|chr"
if isNul(content) then Exit Function
sqlArray=split(sqlStr,"|")
for i=lbound(sqlArray) to ubound(sqlArray)
if instr(lcase(content),sqlArray(i))<>0 then
select case sqlArray(i)
case "<":speStr="<"
case ">":speStr=">"
case "'","""":speStr="""
'case ";":speStr=";"
case else:speStr=""
end select
content=replace(content,sqlArray(i),speStr,1,-1,1)
end if
next
preventSqlin=content
End Function
'上面的参数过滤函主要是防止sql注入,加强的防护。