伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

MySQL的防火墙功能

来源:本站原创 浏览:95次 时间:2022-11-12

防火墙——将保护您免受任何软件中至少50%的所有类型的***。MySQL在企业版里为用户提供了防火墙功能。

MySQL的防火墙提供应用级别的防护,数据库管理员可以通过防火墙允许或拒绝SQL文的执行。通过它可以防止SQL注入***以及非法利用数据库。

MySQL的防火墙是基于每个用户的白名单(白名单记录的是摘要语句,用户可以自定义长度)实现,每个用户的防火墙模式有三种,记录、保护和检测模式。工作流程可以参考下图:

当服务器接收到客户端的SQL语句之后,经过解析器标识到达防火墙。防火墙会基于用户采用的模式进行判断,如果未开启防火墙将进入执行SQL阶段。如果开启了防火墙的记录模式,防火墙会将这些SQL语句存储到白名单。如果是其它模式,防火墙将会与白名单内容进行匹配,如果SQL语句不匹配,将会发送警告至错误日志,如果开启的是保护模式,则阻挡该SQL语句执行。

MySQL的防火墙主要由以下几个组件构成:

  • 服务器端名为MYSQL_FIREWALL 的插件:该插件主要负责校验SQL语句是否与白名单匹配。

  • MYSQL_FIREWALL_USERS 和 MYSQL_FIREWALL_WHITELIST 视图:用于缓存防护墙的白名单和用户数据。

  • firewall_users 和 firewall_whitelist系统表:位于mysql系统数据库,用于存放防火墙的白名单和用户数据。

  • sp_set_firewall_mode() 和 sp_reload_firewall_rules():两个存储过程用于设置防火墙的模式和加载防火墙规则。

防火墙的安装过程非常简单,可以通过MySQL WorkBench进行安装,也可以手动进行安装,安装过程在这里不进行详述,可以访问官网手册:“https://dev.mysql.com/doc/refman/8.0/en/firewall-installation.html”。

MySQL防火墙的使用方法也非常简单,在这里举一个简单的例子进行说明。防火墙除了可以防止遭受注入***等安全事件,还可以利用它对SQL语句的执行进行规范和限制,例如,删除或更新语句不加上where条件等等。

安装好防火墙之后,默认是开启的,可以通过下面语句确认:

mysql> SHOW GLOBAL VARIABLES LIKE 'mysql_firewall_mode';

之后,可以对用户开启记录模式:


开启记录模式之后,可以对白名单进行训练,使应用程序的完整遍历周期里用到的SQL语句保存至白名单。在这里以delete语句为例:

记录之后,可以查看一下白名单的内容:


可以看到白名单里面记录了一条带有where条件的delete语句,接下来我们开启保护模式,并执行一下不带where条件的delete语句:

可以看到,未加where条件的delete语句被防火墙阻挡。

管理员可以通过show status语句查看防火墙的状态和阻挡语句的数量:

上面是一个小小的示例,你可以尝试更多的使用方法,以保证MySQL的安全。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net