zoukankan      html  css  js  c++  java
  • SQL注入的原理与相关知识点

    题记

           最近总是这样,每当我和他四目相交,目光总会先躲开一次,然后再次相视。 ------------青春之旅

    注意

      登录后台可以试试万能密码' or !false --

          原理:当客户端提交的数据 未做处理或转义直接带入数据库就造成了SQL注入。

          注入分为2大类

                  1.整型(没有单双引号)

                  2.字符串(有单双引号)

    1、SQL注入的原理

            SQL注入的漏洞产生必须满足以下两个条件

                  ①参数用户可控:前端传给后端的参数内容是用户可以控制的。

                  ②参数代入数据库查询:传入的参数拼接到SQL语句,并且代入到数据库查询。

    2、与MySQL注入相关的知识点

             在MySQL5.0之后的版本,MySQL默认在数据information_schema的数据数据库。在改数据库中我们需要记住三个表名,schemata,tables,columns。

    Schemata表存储用户创建的所有的数据库的库名,我们需要记住schema_name字段。

            Tables表存储所有数据库名和表名。

                Columns表存储所有的数据库名、表名和字段名

       

    3、常用MySQL常用语句

            Select 要查询的字段 from 库名.表名 where 字段名=值 and 字段名2=值

            单行注释,#后面直接加内容 、 -- 后面直接加内容

            多行注释,/**/中间可以跨

             union联合查询:union操作符用于拼接两个或者多个select查询语句。union中前后2个查询必须拥有相同的列数。

             order by num语句: 默认按照升序进行排列

    3.1、常用的函数

             user()   当前用户名

            database()  当前所用数据库

            version()     数据库的版本

    3.2、字符串连接函数

            1、concat(str1,str2..)直接连接

            2、group_concat(str1,str2)使用逗号作为分隔符

            3、concat_ws(sep,str1,str2)函数使用第一个参数作为分隔

            4、substr() substr(string string,num start,num length);

            5、LENGTH(str)返回字符串str的长度,以字节为单位

  • 相关阅读:
    巴洛克式和哥特式的区别
    推荐阅读书籍,是时候再行动起来了。
    AtCoder ABC 159F Knapsack for All Segments
    AtCoder ABC 159E Dividing Chocolate
    AtCoder ABC 158F Removing Robots
    AtCoder ABC 158E Divisible Substring
    AtCoder ABC 157F Yakiniku Optimization Problem
    AtCoder ABC 157E Simple String Queries
    AtCoder ABC 157D Friend Suggestions
    AtCoder ABC 156F Modularness
  • 原文地址:https://www.cnblogs.com/sunny11/p/13572731.html
Copyright © 2011-2022 走看看