MySQL企业版之Firewall(SQL防火墙)

​​​1. 关于Firewall插件

2. Firewall插件的工作方式

3. Firewall插件测试

4. 总结延伸阅读

1. 关于Firewall插件

             Friewall是MySQL企业版非常不错的功能插件之一,启用Firewall功能后,SQL的执行流程见下图示意:

2. Firewall插件的工作方式

     Firewall插件的工作机制大概是这样的:

    0.  将某个账号 Register(注册)到Firewall插件中,未注册的账号将不会被Firewall插件保护。

    1.  先将Firewall插件设置 recording(记录)模式,将各种SQL格式化/模式化之后,形成各种不同的SQL fingerprint(指纹)。例如下面的两条SQL,都会被格式化成一条:

# 原始SQL

    a)  SELECT* FROMt1 WHEREc1 = 1;

   b)   SELECT* FROMt1 WEHRE c1 = 1024;

# 格式化之后的SQL

       SELECT* FROMt1 WHEREc1 = ?;

备注:在这个过程中,如果总有超长SQL的话,需要加大参数 max_digest_length 的设置,其默认值是1024。

   2. Firewall插件会学习上述SQL,形成一个白名单。

   3. 经过一段时间的训练后,可以将Firewall插件工作模式切换为 protecting(保护)模式,开始工作。这时候就能自动判断有哪些SQL可能是恶意的,会被自动拒绝,并且记录到日志中,如果启用参数 mysql_firewall_trace 的话。

   4. 如果还发生个别SQL被拒绝的情况,则可以将插件切换回 recording(记录)模式,继续学习训练一段时间再切换到工作状态。

   5. 此外,还有一种工作模式是 detecting(探测),在这个模式下,符合白名单的会被放过执行,而其他SQL则会被记录到日志中,但并不会被拒绝执行,这就相当于正式开始工作前的灰度测试模式了。

       简言之,就是在业务账号对外正式开放前,先自行模拟各种正常业务请求,使之完成前期必要的学习,正式上线后再开启保护模式。因为外网生产环境中坏人太多,任意时候都有可能有坏蛋提交各种恶意破坏的请求。

3. Firewall插件测试

 接下来我们做个简单的测试场景。

       首先,先尝试将一个新账号直接设置为 protecting模式,这时候该账号还未学习任何规则,因此所有的SQL应该都会被拒绝才对。

相关推荐

  1. MySQL主从同步(openEuler

    2023-12-06 00:00:05       44 阅读
  2. Linux防火墙IPtables

    2023-12-06 00:00:05       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 00:00:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 00:00:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 00:00:05       82 阅读
  4. Python语言-面向对象

    2023-12-06 00:00:05       91 阅读

热门阅读

  1. 设计模式-备忘录模式

    2023-12-06 00:00:05       55 阅读
  2. 用C语言实现单链表

    2023-12-06 00:00:05       55 阅读
  3. 国产Euler(欧拉)系统安装docker

    2023-12-06 00:00:05       54 阅读
  4. QLineEdit 的 InputMask掩码

    2023-12-06 00:00:05       54 阅读
  5. Example: use raspberry pi 4 control multiple motors(tb660)

    2023-12-06 00:00:05       58 阅读
  6. 向量数据库

    2023-12-06 00:00:05       61 阅读
  7. 如何在嵌入式系统中使ECU发出的首帧为NM帧

    2023-12-06 00:00:05       53 阅读
  8. 深入理解服务器进程管理与优化

    2023-12-06 00:00:05       60 阅读
  9. 自制编程语言(第三弹)定义Token

    2023-12-06 00:00:05       58 阅读
  10. ESP网络开发实例-通过WebSocket控制步进电机

    2023-12-06 00:00:05       57 阅读
  11. C# freesql技术 常用的增删改查sql命令

    2023-12-06 00:00:05       56 阅读