回 帖 发 新 帖 刷新版面

主题:两个function语句,请指教!

给看看下面两个都能防什么?怎么使用?
function ForSqlForm()
dim fqys,errc,i,items
dim nothis(18) 
nothis(0)="net user" 
nothis(1)="xp_cmdshell" 
nothis(2)="/add" 
nothis(3)="exec%20master.dbo.xp_cmdshell" 
nothis(4)="net localgroup administrators" 
nothis(5)="select" 
nothis(6)="count" 
nothis(7)="asc" 
nothis(8)="char" 
nothis(9)="mid" 
nothis(10)="''" 
nothis(11)=":" 
nothis(12)="""" 
nothis(13)="insert" 
nothis(14)="delete" 
nothis(15)="drop" 
nothis(16)="truncate" 
nothis(17)="from" 
nothis(18)="%"
nothis(19)="@"  
errc=false 
for i= 0 to ubound(nothis) 
  for each items in request.Form
  if instr(request.Form(items),nothis(i))<>0 then 
   response.write("<div>")
   response.write("你所填写的信息:" & server.HTMLEncode(request.Form(items)) & "<br>含非法字符:" & nothis(i))
   response.write("</div>")
   response.write("对不起,你所填写的信息含非法字符!<a href=""#"" onclick=""history.back()"">返回</a>")
   response.End()
  end if 
  next
next 
end function


function ForSqlInjection()
dim fqys,errc,i
dim nothis(19) 
fqys = request.ServerVariables("QUERY_STRING")
nothis(0)="net user" 
nothis(1)="xp_cmdshell" 
nothis(2)="/add" 
nothis(3)="exec%20master.dbo.xp_cmdshell" 
nothis(4)="net localgroup administrators" 
nothis(5)="select" 
nothis(6)="count" 
nothis(7)="asc" 
nothis(8)="char" 
nothis(9)="mid" 
nothis(10)="''" 
nothis(11)=":" 
nothis(12)="""" 
nothis(13)="insert" 
nothis(14)="delete" 
nothis(15)="drop" 
nothis(16)="truncate" 
nothis(17)="from" 
nothis(18)="%"
nothis(19)="@"  
errc=false 
for i= 0 to ubound(nothis) 
if instr(FQYs,nothis(i))<>0 then 
errc=true 
end if 
next 
if errc then 
response.write "查询信息含非法字符!<a href=""#"" onclick=""history.back()"">返回</a>" 
response.end 
end if 
end function

回复列表 (共1个回复)

沙发

防止sql注入,第一个是过滤提交的表单信息,第二个是过滤url的参数。

我来回复

您尚未登录,请登录后再回复。点此登录或注册