SQL注入行为 请教高人指点什么是SQL注入行为?简单点描述原理即可,如何防范? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单点说就是猜测sa的密码,然后连接到数据库,然后使用sql命令增加操作系统的用户等 http://wenku.baidu.com/view/d77d7dc24028915f804dc24d.html Stringquery="SELECTidFROMuser_tableWHERE"+ "username='"+username+"'AND"+ "password=PASSWORD('"+password+"')"; 上述代码认为字符串username和password都是数据,不过,攻击者却可以随心所欲地输入任何字符。如果一位攻击者输入的用户名为 ’OR1=1— 而口令为 x 那么查询字符串将变成下面的样子: SELECTidFROMuser_tableWHEREusername=''OR1=1--'ANDpassword =PASSWORD('x') 最经典的例子是系统登录页面的问题, 详见Google.. http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html?84220 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.如何防止SQL注入 归纳一下,主要有以下几点: 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。 4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装 6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。 一般情况上是入侵者构造它想要的sql语句,比如你的想法是这样:SELECT * FROM table1 WHERE id = 1而你提供机会或者漏洞让它能够构造如下 sql:SELECT * FROM table1 WHERE id = 1 OR 1=1这样你所有的信息都被查出来。"OR 1=1"是入侵者构造出来的。当然,这是最简单的例子。 set与sp_dboption的区别 A,B两个表查询可以直接判断其中一个属性值的情况吗? 数据库跨库查询效率问题 辽宁北软沈阳分公司于2007/1/16日开张,急聘delphi开发部经理、项目经理、工程师 进入数据库慢的问题? 能在函数中实现动态 sql 吗? ***< 超难问题,希望 高手给答复 >*** 如何用视图显示给定的ID的类别 以及它的所有父辛类的名字和id ,并且把查询给定的ID的类别的内容也 视图中不能用cast么 DSN配置问题!!!!!! 急~~~~~ 有个真正的SQL基础问题,但估计新手多半不了解,特在这向高手请教! 求个高效SQL 这样的思路能否做到
归纳一下,主要有以下几点: 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。 4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装 6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。
你的想法是这样:
SELECT * FROM table1 WHERE id = 1
而你提供机会或者漏洞让它能够构造如下 sql:
SELECT * FROM table1 WHERE id = 1 OR 1=1
这样你所有的信息都被查出来。"OR 1=1"是入侵者构造出来的。
当然,这是最简单的例子。