SQL注入笔记记录+MySQL的事务隔离级别「终于解决」

SQL注入笔记记录+MySQL的事务隔离级别「终于解决」(一)SQL注入。 1.如何理解SQL注入? SQL注入是一种将SQL代码添加到输入参数中,传递到SQL服务器解析并执行的一种攻击手法。 2.SQL注入是如何产生的? web开发人员无法保证所有的输入

(一)SQL注入。

1.如何理解SQL注入?
SQL注入是一种将SQL代码添加到输入参数中,传递到SQL服务器解析并执行的一种攻击手法。

2.SQL注入是如何产生的?
web开发人员无法保证所有的输入都已经过滤。
攻击者利用发送给SQL服务器的输入数据构造可执行的SQL代码
数据库未做相应的安全配置。

3.如何寻找SQL注入漏洞?
借助逻辑推理:
识别web应用中所有输入点。
了解哪些类型的请求会触发异常。(get特殊字符‘ “)
检测服务器响应中的异常。

4.如何进行SQL注入攻击?
数字注入。
(1)select * from name where id=-1 OR 1=1; 这样就会查询全表。
字符串注入。
(1)SQL,#后面会被注释掉的
select * from name= ‘llsydn’#’ and password = “123456”;
(2)SQL,–后面会被注释掉的
select * from name= ‘llsydn’–‘ and password = “123456”;

5.如何预防SQL注入?
严格检查输入变量的类型和格式。
过滤和转义特殊字符。
利用mysql的预编译机制。

(二)MySQL隔离级别

1.MySQL事务隔离级别。
SERIALIZABLE; REPEATABLE READ; READ COMITTED; READ UNCOMMITTED
序列化;       可重复读;        提交读;       未提交读

(1)serializable,最高级别,当别操作未提交时,不能操作数据库。

(2)repeatable read,可重复读。(默认的隔离级别)
出现幻读的情况,A事务插入数据insert,并提交commit。B事务查询select,并更新update数据的时候,并提交commit,B查询会出现幻读,即会显示A事务插入的数据。

(3)read committed,提交读。A事务更新update数据,并提交commit。B事务中都可以读取到被更新的数据。(即出现了不可重复读)

(4)read uncommitted,未提交读。A事务更新update数据,未提交。B事务中都可以读取到被更新的数据。(A事务,回滚rollback了,则会出现脏读)

2.MySQL性能与非事务表的表锁定。
支持事务的数据库在保持不同用户彼此隔离方面要比非事务数据库复杂,因此自然
反映在系统的性能上面。
在使用事务表时,提高性能的一些方法:
(1)使用小事务。
(2)选择合适的隔离级别。
(3)保证开始事务前一切都是可行的。
(4)避免死锁。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11545.html

(0)
上一篇 2023-04-03
下一篇 2023-04-03

相关推荐

  • mysql四种常见日志_Redis日志

    mysql四种常见日志_Redis日志日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详…

    2023-04-02
    105
  • Mysql事务控制[通俗易懂]

    Mysql事务控制[通俗易懂]MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,如果操作就必须同时操作成功,如果有一个不成功则所有数据都不动。这时候数据库操作语句就构成一个事务。事务主要处理数据的增删改操作。开始执行事务中的若干条SQL命令(增删改)终止事务,若begin之后使用commit提交事务或者使用rollback进行事务回滚。事务四大特性原子性(atomicity)一致性(consis

    2023-04-02
    102
  • MySQL事务隔离级别和MVCC

    MySQL事务隔离级别和MVCCMySQL是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)。我们可以同时在不同的会话里输入各种语句,这些语句可以作为事务的一部分进行处理。不同的会话可以同时发送请求,也就是说服…

    2023-04-03
    121
  • macbook窗口快捷键_数据库事务并发

    macbook窗口快捷键_数据库事务并发talbelock表锁是mysql最基本的锁策略,也是开销最小的锁,它会锁定整个表;具体情况是:若一个用户正在执行写操作,会获取排他的“写锁”,

    2023-04-03
    93
  • 【C 语言】数组作为参数退化为指针问题

    【C 语言】数组作为参数退化为指针问题文章目录 一、问题描述 二、从编译器角度分析该问题 三、数组作为参数的推荐方案 一、问题描述 将 数组 作为 函数参数 , 传递时会 退化为指针 ; 数组的首地址 , 变为指针地址 , 函数中无法判定

    2023-11-13
    82
  • 键码经典游戏:简易版贪吃蛇

    键码经典游戏:简易版贪吃蛇一起探险,用HTML, CSS和JavaScript编写一个动态的贪吃蛇游戏。从基础布局到复杂逻辑,逐步提升~~

    2023-11-15
    87
  • 【C语言进阶】指针数组 —— 数组指针

    【C语言进阶】指针数组 —— 数组指针🔥 注:本篇文章需要用到前一章内容二级指针的概念需要的可以去看看呢。  ⛳️ 指针数组是指针还是数组?这是我们想问的问题!其实我们可以采用类比的方法进行比较,比如说 整形数组 和 指针数组 俩个命名只有前面两个字不一样。数组我们已经知道整形数组,字符数组。那么指针数组该怎么定义呢…

    2023-11-12
    78
  • 再谈Transaction——MySQL事务处理分析[亲测有效]

    再谈Transaction——MySQL事务处理分析[亲测有效]事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个 sql 语句,这些语句要么都执行,要么都不执行。 事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人…

    2023-04-02
    93

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注