深入了解SQL注入

 更新时间:2018年02月07日 14:30:14   作者:给我一杯奶茶  
本篇文章通过SQL和MYSQL的对比,以及SQL注入的原理等方面详细分析了SQL注入相关知识点,对此有兴趣的朋友学习下。

1 .什么是sql注入(Sql injection)?

Sql注入是一种将sql代码添加到输入参数中,传递到Sql服务器解析并执行的一种攻击手法

2. 怎么产生的?

Web开发人员无法保证所有的输入都已经过滤

攻击者利用发送给Sql服务器的输入数据构造可执行的Sql代码

数据库未做相应的安全配置

3.如何寻找sql漏洞?

识别web应用中所有输入点

了解哪些类型的请求会触发异常?(特殊字符”或')

检测服务器响应中的异常

4. 如何进行SQL注入攻击?

数字注入:

Select * from tablename where id=1 or 1=1;

字符串注入:

Mysql的注释特性:

#与--号后面的被注释掉,无论密码输入的是什么,都能正确查询。请点击此处输入图片描述

5. 如何预防sql注入?

严格检查输入格式:is_numeric(var),tp5的validate验证,字符串的注入采用正则看是否在[A-Za-z]之间

转义:addslashes(str)、

mysqli_escape_string()函数进行转义

6.MySQLi的预编译机制

参数化绑定

参数化绑定,防止 SQL 注入的又一道屏障。php MySQLi 和 PDO 均提供这样的功能。比如 MySQLi 可以这样去查询:

PDO 的更是方便,比如:

相关文章

  • mysql 修改密码和设置允许远程登录

    mysql 修改密码和设置允许远程登录

    这篇文章主要介绍了mysql 修改密码和设置允许远程登录的相关资料,需要的朋友可以参考下
    2015-07-07
  • MySQL for update锁表还是锁行校验(过程详解)

    MySQL for update锁表还是锁行校验(过程详解)

    在MySQL中,使用for update子句可以对查询结果集进行行级锁定,以便在事务中对这些行进行更新或者防止其他事务对这些行进行修改,这篇文章主要介绍了MySQL for update锁表还是锁行校验,需要的朋友可以参考下
    2024-02-02
  • Mysql案例刨析事务隔离级别

    Mysql案例刨析事务隔离级别

    隔离性其实比想象要复杂。在SQL中定义了四种隔离的级别,每一种隔离级别都规定了一个事务中的修改,哪些是在事务内和事务间是可见的,哪些是不可见的。较低级别的隔离通常来说能承受更高的并发,系统的开销也会更小
    2021-09-09
  • MySQL彻底卸载并且重新安装教程

    MySQL彻底卸载并且重新安装教程

    本文详细介绍了卸载和重新安装MySQL的步骤,包括停止MySQL服务、卸载软件、清理残余文件、删除注册表、删除环境变量配置等,重新安装时,需要下载MySQL、配置环境变量、新建配置文件、初始化MySQL服务、注册MySQL服务、启动MySQL服务、修改默认账户密码以及登录MySQL
    2025-01-01
  • mysql实现设置定时任务的方法分析

    mysql实现设置定时任务的方法分析

    这篇文章主要介绍了mysql实现设置定时任务的方法,结合实例形式分析了mysql定时任务相关的事件计划设置与存储过程使用等操作技巧,需要的朋友可以参考下
    2019-10-10
  • Eclipse与MySQL数据库的连接教程(已实操)

    Eclipse与MySQL数据库的连接教程(已实操)

    用eclipse编写的好的代码,我们怎么才能连接到数据库呢?下面这篇文章主要给大家介绍了关于Eclipse与MySQL数据库连接的相关资料,下面的操作是经本人验证,确实可行,需要的朋友可以参考下
    2023-05-05
  • 在C#和MySQL中存取中文字符时避免乱码的方法

    在C#和MySQL中存取中文字符时避免乱码的方法

    这篇文章主要介绍了在C#和MySQL中存取中文字符时避免乱码的方法,主要还是老办法先转换成Unicode编码,需要的朋友可以参考下
    2015-05-05
  • mysql5.7.17安装使用图文教程

    mysql5.7.17安装使用图文教程

    这篇文章主要为大家详细介绍了MySql安装与使用图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • MySQL索引类型总结和使用技巧以及注意事项

    MySQL索引类型总结和使用技巧以及注意事项

    索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型
    2014-04-04
  • innodb如何巧妙的实现事务隔离级别详解

    innodb如何巧妙的实现事务隔离级别详解

    隔离是ACID(Atomicity,Consistency,Isolation,Durability)的重要部分,下面这篇文章主要给大家介绍了关于innodb如何巧妙的实现事务隔离级别的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-11-11

最新评论