直面--SQL注入式攻击

          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注入式攻击,让你的程序更安全,让用户使用的更放心!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值