请教高人指点什么是SQL注入行为?简单点描述原理即可,如何防范?

解决方案 »

  1.   

    简单点说就是猜测sa的密码,然后连接到数据库,然后使用sql命令增加操作系统的用户等
      

  2.   

    http://wenku.baidu.com/view/d77d7dc24028915f804dc24d.html
      

  3.   

    Stringquery="SELECTidFROMuser_tableWHERE"+  "username='"+username+"'AND"+  "password=PASSWORD('"+password+"')";  上述代码认为字符串username和password都是数据,不过,攻击者却可以随心所欲地输入任何字符。如果一位攻击者输入的用户名为  ’OR1=1—  而口令为  x  那么查询字符串将变成下面的样子:  SELECTidFROMuser_tableWHEREusername=''OR1=1--'ANDpassword  =PASSWORD('x')
      

  4.   

    最经典的例子是系统登录页面的问题, 详见Google..
      

  5.   

    http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html?84220
      

  6.   

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.如何防止SQL注入
      归纳一下,主要有以下几点:   1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和   双"-"进行转换等。   2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。   3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。   4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。   5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装   6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。
      

  7.   

    一般情况上是入侵者构造它想要的sql语句,比如
    你的想法是这样:
    SELECT * FROM table1 WHERE id = 1
    而你提供机会或者漏洞让它能够构造如下 sql:
    SELECT * FROM table1 WHERE id = 1 OR 1=1
    这样你所有的信息都被查出来。"OR 1=1"是入侵者构造出来的。
    当然,这是最简单的例子。