信智网络

首页 > 网站相关 > 技术服务 > asp sql 防注入

 

asp sql 防注入

外贸建站 技术服务 707

asp是早期微软推出来的动态网页设计语言,包括vb脚本和js,很容易学,用着也方便,所以用户很多,当时基本所有网站都是使用asp建设。什么东西一热门就会有很多人关注,

当然也包括黑客。因为asp程序本身和iis的漏洞,所以,很多人发现了很多漏洞,那相应的很多网站被攻击了。现在,很少人再用asp建站了,用也是用安全相对较好的asp cms。

但是这些并不能否定asp在网站建设方面的优势。今天 我们就来讨论下如何预防比较常见的SQL注入。

首先,简单说下什么是SQL注入,很简单,就是使用一些非法的字符,绕过用户程序的sql,进而执行自己的sql,达到获取密码信息的目的。这些字符可能是数据库的保留字符,可

以使明显的,也可以是解释后的。

那么,我们怎么去防止注入呢,很明显,过滤掉这些字符就行了,这里有个方法来过滤所有用户请求的非法字符信息。

Dim inj_Post,inj_Get,inj_In,inj_Inf,inj_Xh
inj_In = "'|and|exec|insert|select|delete|update|count|%|chr|mid|master|truncate|char|declare"
inj_Inf = split(inj_In,"|")
'--------------Get-------------
If Request.QueryString<>"" Then
For Each inj_Get In Request.QueryString
 For inj_Xh=0 To Ubound(inj_Inf)
  If Instr(LCase(Request.QueryString(inj_Get)),inj_Inf(inj_Xh))<>0 Then
   response.write "<script language='javascript'>alert('非法操作!请退出重试!');window.location.href='http://www.sscode.com';</script>"
   response.end
   Exit For
  End If
 Next
Next
End If
'-------------form-------------
If Request.Form<>"" Then
For Each formvar In Request.Form 
 For inj_Xh=0 To Ubound(inj_Inf)
  If Instr(LCase(Request.Form(formvar)),inj_Inf(inj_Xh))<>0 Then
   response.write "<script language='javascript'>alert('非法操作!请退出重试!');window.location.href='http://www.sscode.com';</script>"
   response.end
   Exit For
  End If
 Next
Next
End If


这里拦截了用户的地址请求和form请求方式。这是会出现这样的问题,就是有些网站需要这些字符的输入,在他们来说,这些是正常的,可以输入的,那怎么办?很好办,你把这

些字符转换下就行了,输出时再转过来。

另外,要严格对每个输入页面进行验证。

 

 




文章评论

 
E-mail:
内容: