最友好的SQL注入防御方法

时间:2006-10-12 来源: 作者: 点击:
不知道是不是有些人给SQL注入吓怕了,把一大堆根本对系统安全没威胁的字符(比如"号,%号等)都过滤了(甚至NB联盟有些人居然也这样做),使得一些系统的User Interface极不友好,经常出现"输入特殊字符"的提示,造成用户的流失. 以下是根据我一年注入经验的总结,在绝对安全的前
  
  不知道是不是有些人给SQL注入吓怕了,把一大堆根本对系统安全没威胁的字符(比如"号,%号等)都过滤了(甚至NB联盟有些人居然也这样做),使得一些系统的User Interface极不友好,经常出现"输入特殊字符"的提示,造成用户的流失.
  
  以下是根据我一年注入经验的总结,在绝对安全的前提下,过滤得最少,最友好的防注入方法:
  
  1.数字型变量:用isNumeric()判断是否为数字
  
  2.字符型或其它类型变量:将单引号'替换成两个
  
  下面给出两个函数,用来代替ASP的Request函数,只要每处地方使用这两个函数取值,SQL注入根本没有用武之地.
  
  '----------------------------------------------------------------
  ' 获取数字型参数
  '----------------------------------------------------------------
  Function ReqNum ( StrName )
  
  ReqNum = Request ( StrName )
  
  if not isNumeric ( ReqNum ) then
  
  response.write "参数必须为数字型!"
  
  response.end
  
  end if
  
  End Function
  
  '----------------------------------------------------------------
  ' 获取字符型参数
  '----------------------------------------------------------------
  
  Function ReqStr ( StrName )
  
  ReqStr = Replace ( Request(StrName), "'", "''" )
  
  End Function
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容