zoukankan      html  css  js  c++  java
  • SQL注入

    是什么?

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

    如何防止SQL注入

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

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

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

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

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

      6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。

    实例:

      在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为:

      select * from users where username='' or 1=1#' and password=md5('')

      语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,这样就不会去执行了,换句话说,以下的两句sql语句等价:

      select * from users where username='' or 1=1#' and password=md5('')

      等价于

      select * from users where username='' or 1=1

  • 相关阅读:
    【HDU 4305】Lightning(生成树计数)
    【HDU 1150】Machine Schedule(二分图匹配)
    【HDU 2063】过山车(二分图匹配)
    透过Nim游戏浅谈博弈
    [SCOI2010]字符串
    [SCOI2010]传送带[三分]
    [SCOI2010]序列操作[分块or线段树]
    HDU 5306 Gorgeous Sequence[线段树区间最值操作]
    1455: 罗马游戏[左偏树or可并堆]
    Codevs 5914 [SXOI2016]最大值
  • 原文地址:https://www.cnblogs.com/flypea93/p/9208172.html
Copyright © 2011-2022 走看看