现在的位置: 首页 > 综合 > 正文

直面–SQL注入式攻击

2013年10月14日 ⁄ 综合 ⁄ 共 1154字 ⁄ 字号 评论关闭

          SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

    这是百度百科的解释,怎么样,晕了没有?不过没有关系,我试试看,能不能把大家讲醒了.

    顾名思义:SQL注入式攻击,肯定是SQL语句的事了.所以,先来看一个SQL语句:

        Select *from Tabel1 Where User_Name='" & txtUser_Name.text &"'

    这是一句大家经常用到的SQL语句,可能有人会想,这么简单的一句话,会有什么问题呢?不要着急,且听我细细说来.

    

    你的本意是想让某些具有相应权限的人操作程序,他们都会知道登录的用户名,借此验证.可是,你有没有想过,如果我在txtUser_Name输入框中输入  "
" &" ' or'" & "1=1"

    看,原本的SQL语句:

         Select *from Tabel1 Where User_Name='" & txtUser_Name.text &"'

    

   现在变成了:

        Select *from Tabel1 Where User_Name='" & "  " &" ' or '" &"1=1"  &"'  


    这时,相信明眼人都看出来了,后部分的或命题:
or 1=1 
是必然成立的
,所以,登录程序成功了!

    没错,这就是SQL注入式攻击.攻击者尝试输入某些特殊的SQL字符串篡改查询改变其原来的功能,欺骗系统授予访问权限。

    说到这里,大家有没有中豁然开朗的感觉---原来,黑客,就是这样练成的

    那么,既然SQL注入有这么大的危害,我们该如何防止SQL注入呢?

    

   简单的介绍这几种方法,用户可自行选择.

  1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

  2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

  3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

  4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

  5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

  6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT
SCAN等。采用
MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等.

     

    直面--SQL注入式攻击,让你的程序更安全,让用户使用的更放心!

抱歉!评论已关闭.