zoukankan      html  css  js  c++  java
  • 【常见Web应用安全问题】2、SQL Injection

     Web应用程序的安全性问题依其存在的形势划分,种类繁多,这里只介绍常见、比较常见和有点常见的。

     常见Web应用安全问题安全性问题的列表:

      1、跨站脚本攻击(CSS or XSS, Cross Site Scripting)
      2、SQL注入攻击(SQL injection)
      3、远程命令执行(Code execution,个人觉得译成代码执行并不确切)
      4、目录遍历(Directory traversal)
      5、文件包含(File inclusion)
      6、脚本代码暴露(Script source code disclosure)
      7、Http请求头的额外的回车换行符注入(CRLF injection/HTTP response splitting)
      8、跨帧脚本攻击(Cross Frame Scripting)
      9、PHP代码注入(PHP code injection)
      10、XPath injection
      11、Cookie篡改(Cookie manipulation)
      12、URL重定向(URL redirection)
      13、Blind SQL/XPath injection for numeric/String inputs
      14、Google Hacking


    SQL注入攻击(SQL injection)

      早在十几年前,基于数据库的Web应用刚刚盛行的时候,几乎所有的开发商都忽略了SQL注入弱点,导致当时绝大多数的网站的登录入口形同虚设!为什么呢?先给一个小小的例子,假如以下SQL代码是用来在网站登录入口入执行用户验证时的查询代码:
    SELECT count(*)
    FROM users_list_table
    WHERE username='USERNAME'
    AND password='PASSWORD'

    以上的USERNAME就是我们登录时提供的用户名,PASSWORD就是我们登录时提供的密码。当用户输入正确的用户名和密码时,这条语句的执行结果将为真(True),否则为假(False),当然为真时我们就认为认证通过,为假时就认为认证失败,即非法登录。试想一下,如果我在输入用户名和密码的时候输入如下的内容:
    用户名:a' or 'a'='a
    密码:a' or 'a'='a    
    用代入法把用户名和密码输入值代入到上述的SQL脚本里结果如下:
    SELECT count(*)
    FROM users
    WHERE username='a' or 'a'='a'
    AND password='a' or 'a'='a'

    相信稍懂一点儿SQL语句的人都知道,这条语句的执行结果就永远是真了!此时你不需要有帐号,就直接登录成功了!你对此漏洞理解的深度同样取决于你的对SQL语句的技能和web安全知识能力。一个具有良好技能的攻击者可能利用此漏洞获取后台DB的结构并逐步获取DB的信息。
    总结一下:SQL注入弱点是存在基于数据库的Web应用中,黑客利用精心组织的SQL语句,通过Web接口(通常指我们的Web页面的表单)注入的Web应用中,从而获取后台DB的访问与存取权的一种安全弱点。

      简要的解决方案:

      刚刚介绍了XSS,在这里关于SQL Injection我想就无需多说了,都是过滤、合法性检查和长度限制等通用方法。
      有没有注意到,XSS和SQL Injection,虽然名字不一样,但它们似乎都属于我前一篇文章《解读Web安全性问题的本质》中的第一部分,即输入/输出验证。下面将要介绍的远程命令执行目录遍历文件包含同样也是输入/输出验证问题。


    来自CSDN,原文出处:http://blog.csdn.net/iwebsecurity/article/details/1693877

  • 相关阅读:
    poj 1088 滑雪
    位运算与bitset
    hdu 4607 Park Visit
    树的直径
    codeforces 495D Sonya and Matrix
    German Collegiate Programming Contest 2015(第三场)
    BAPC 2014 Preliminary(第一场)
    Benelux Algorithm Programming Contest 2014 Final(第二场)
    E. Reachability from the Capital(tarjan+dfs)
    poj2104 K-th Number(划分树)
  • 原文地址:https://www.cnblogs.com/y0umer/p/3839102.html
Copyright © 2011-2022 走看看