两个防止SQL注入的ASP函数

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

做为站长学习如何防止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


标签:SQL注入,ASP
0
投稿

猜你喜欢

  • 如何让网站打开更快

    2011-03-31 17:03:00
  • Baidu搜索排名的基本原则

    2008-07-09 18:41:00
  • 国外空间出现乱码的几种解决办法

    2008-11-01 03:47:00
  • 确保服务器稳定七大注意事项

    2009-06-18 10:17:00
  • 科汛V6.5:加强推广积分互动 增加后台广告

    2009-12-02 14:57:00
  • 中关村寻宝:中国式管理书籍为何被放在小角落?

    2009-10-23 09:44:00
  • Windows下的Apache+PHP+MySql+虚拟主机设置全功略

    2007-08-13 14:48:00
  • 谷歌暗藏实时搜索:修改URL参数即可实现

    2009-09-14 19:29:00
  • Godaddy主机如何绑定域名到子文件夹新建网站的说明 Godaddy

    2010-04-21 12:48:00
  • 小站长推广网站葵花宝典

    2009-06-16 15:34:00
  • DNS的名称记录

    2010-01-28 19:26:00
  • GoDaddy主机的有关独立IP问题 Godaddy

    2010-04-10 12:46:00
  • 魔兽背后的利益之争:暴雪等或踢开中国伙伴单干

    2009-10-14 16:29:00
  • link和domain在不同的搜索引擎含义不相同

    2008-12-02 11:01:00
  • 英文网站建设与中文网站建设区别之设计篇

    2008-12-12 12:48:00
  • 关于论坛Google AdSense的六点分析

    2009-02-27 12:44:00
  • 一五一十谈IIS安全机制

    2007-10-10 14:08:00
  • DedeCms 5.7实现代码高亮

    2011-10-12 21:04:41
  • Mashup!让搜索引擎显示缩略图

    2007-10-29 12:01:00
  • 内网建Web服务器的安全问题

    2007-03-28 17:02:00
  • asp之家 网站运营 m.aspxhome.com