网站运营
位置:首页>> 网站运营>> 两个防止SQL注入的ASP函数

两个防止SQL注入的ASP函数

 来源:asp之家 发布时间:2005-08-10 14:05:00 

标签:SQL注入,ASP

做为站长学习如何防止SQL注入是非常必须的,因为一旦网站被注入小到挂马,大到破坏系统程序,可以说对网站的破坏是非常大的,对于asp编写的程序,我们应该考虑到表单提交的安全,对于能暴露或破坏数据库特殊字符应当全部过滤,已及禁止从站外提交表单,对于形如xx.asp?id=的形式来传递参数的页面,我们应该对ID参数进行数字验证,asp可以使用IsNumeric(expression)函数来验证是否为数字,非数字则禁止操作,下面是两个收集来的过滤函数。

’==========================
’过滤提交表单中的SQL
’==========================
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


’==========================
’过滤查询中的SQL
’==========================
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


0
投稿

猜你喜欢

手机版 网站运营 asp之家 www.aspxhome.com