【mysql安全】1. mysql限制请求次数_MySQL会话控制限制登录次数

问题

由于已经被人多次进入数据库删除数据并且留下恶心人的话: 请往xxx打xx币多少多少,十天内不打则会对数据进行删除或者泄露。 所以开始研究数据库的安全问题,我用的是mysql所以只会提这个,其他数据库应该也有类似的操作。

思考

一般我们开发环境的MySQL是没有配置登录保护的,但仅限于开发环境,正式环境是不允许无限制登录,存在很大的风险。

解决问题

MySQL 5.7 以后提供了Connection-Control插件用来控制客户端在登录操作连续失败一定次数后的响应的延迟。该插件可有效的防止客户端暴力登录的风险(攻击)。该插件包含以下两个组件:

  1. connection_control:控制失败次数以及延迟时间
  2. connection_control_failed_login_attempts:将登录失败的操作记录至information_schema表

安装插件

使用root账户登录

mysql -u root -p

安装插件

install plugin connection_control soname "connection_control.so";
install plugin connection_control_failed_login_attempts soname "connection_control.so";

正常安装的情况下

在这里插入图片描述

若已安装则会报错

在这里插入图片描述

验证插件安装状态

select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'connection%';

【mysql安全】1. mysql限制请求次数_MySQL会话控制限制登录次数_第1张图片

修改插件配置

vim /etc/my.cnf
[mysqld]
# ========= Connection-Control插件 =========
plugin-load-add = connection_control.so
connection-control = FORCE
connection-control-failed-login-attempts = FORCE
# 阻塞1分钟
connection_control_min_connection_delay = 60000
connection_control_max_connection_delay = 86400
# 可错误3次
connection_control_failed_connections_threshold = 3
# ========= Connection-Control插件 =========

测试

三次进行错误密码测试,将会出现第三次错误卡死的情况。

【mysql安全】1. mysql限制请求次数_MySQL会话控制限制登录次数_第2张图片

总结

虽然无法根除恶心的人做恶心的事情,但至少能给他们的恶心路径放点石头钉子,冲冲冲!

你可能感兴趣的:(sql,mysql,数据库,mysql安全)