浅谈对于SQL注入攻击方法及预防措施(2)

作者:黄晓兵 彭健 更新时间:2010-09-06 09:43 点击:
【论文发表关健词】SQL注入;漏洞;攻击检测;安全防范
【职称论文摘要】
(二)修复Web应用程序中的漏洞 以ASP程序为例,应用下面的SafeRequest函数来代替ASP中的Request函数,函数如下: Function SafeRequest(ParaName,ParaType) '---传入参数--- 'ParaName:参数名称-字符型 'ParaType:参数


  (二)修复Web应用程序中的漏洞
  以ASP程序为例,应用下面的SafeRequest函数来代替ASP中的Request函数,函数如下:
  Function SafeRequest(ParaName,ParaType)
  '---传入参数---
  'ParaName:参数名称-字符型
  'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
  Dim ParaValue
  ParaValue=Request(ParaName)
  If ParaType=1 then
  If ParaValue=""or not isNumeric(ParaValue) then
  Response.write "参数" & ParaName & "必须为数字型!"
  Response.end
  End if
  Else
  ParaValue=replace(ParaValue,"'","''")
  End if
  SafeRequest=ParaValue
  End function
  运用以上函数代替ASP中的Request函数可有效防止SQL注入的提前发生,对以后的SQL注入打下坚实的防御功效。
  (三)存储过程
  SQL注入攻击的本质是没有对SQL命令和用户输入做出处理,只有把SQL命令和用户输入分离才是解决SQL注入攻击的一个重要手段,即从web应用程序中把SQL语句分离出来。存储过程是在加入用户输入之前编译SQL语句,这样用就不能再修改实际执行的SQL语句.这种不仅能防止SQL注入攻击,还可以大提高SQL语句的执行效率。下面以具体例子来讲述存储过程的应用,该语句在ASP.Net中存在SQL注入漏洞:
  String query="SELECT*FROM user WHERE userID ="+Request["userID"];
  SqlCommand cmd = new SqlCommand(query,SqlConnection);
  cmd.CommandType = CommmandType.Text;
  SqlDataReader drr = command.ExecuteReader();
  先将上述语句写成存储过程,放在相应的数据库服务器服务器上,如下面所示:
  CREATE PROCEDURE getName
  @userID integer
  AS
  SELECT*FROME user WHERE userID = @userID
  上面语句在数据库服务器上编译后就可以调用,本例中将之前查询语句替换为:
  SqlCommand cmd=new SqlCommand("getName",SqlConnection);
  cmd.CommandType=CommandType.StoredProcedure;
  cmd.Parameters.Add("@userID",SqlDbType.Int);
  cmd.Parameters[0].Value=Convert.ToInt32(Request["userID"]);
  SqlDataReader dataReader=userID.ExceptionReader();
  运用上面语句可完全隔离SQL命令和用户输入,合理的防止了对数据库的SQL注入攻击,同时极大的提高了SQL语句的执行效率。
  五、结语
  SQL注入攻击针对的是开发过程中的编程不严密,大多数SQL攻击可以绕过防火墙,目前大家越来越重视这方面的问题,本文着重介绍了SQL注入攻击的种类和SQL注入预防措施,希望Web应用程序开发人员和管理人员提高安全意识,了解SQL注入攻击的常用方法,尽可能减少系统程序漏洞,提高网络系统的安全性。
  参考文献:
  [1]SQL Server安全顾问[EB/OL].http://www microsoft.com/china/ctc/Newsletter/04/ctc2.htm
  [2]Chris Anley.针对SQL Server的高级SQL注入.2002,1
  [3]佚名.SQL注入原理深度解析.http://net.caai.cn/Secure_Haeker/20080904ll49241863.htm.2008
  [4]徐陋,姚国祥.SQL注入攻击全面预防办法及其应用[J].微计算机信息,2006,3,3:18-20
 

(责任编辑:nylw.net)转贴于八度论文发表网: http://www.8dulw.com(论文网__代写代发论文_论文发表_毕业论文_免费论文范文网_论文格式_广东论文网_广州论文网)
发表评论
本站模板均经测试成功,请放心下载,遇到任何问题或者需要购买付费论文请联系本站。
表情:
验证码:点击我更换图片