mysql数据库登录失败次数_mysql数据库限制多次登录失败,限定用户重试时间

前言

最近的项目开始进行安全测试,其中有一个安全问题是这样的。

应该增加用户登录失败处理功能,限制非法登录次数。

建议是增加mysql数据库的登陆失败的锁定功能。

相信大家也都会遇到这样的问题,在这里写一下,方便大家直接使用。

设置方法

登录mysql数据库

mysql -u root -p

复制代码

输入如下命令,安装插件

install plugin CONNECTION_CONTROL soname 'connection_control.so';

install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';

复制代码

查看安装的插件

我们发下,最下面增加了两个插件

3eaf0392053be500a3203955a9e7b567.png

修改my.cnf文件

vim /etc/my.cnf

复制代码

在文件中,我们增加如下两行

connection-control-failed-connections-threshold=5 #登陆失败次数限制

connection-control-min-connection-delay=300000 #限制重试时间,此处为毫秒,注意按需求换算,此处为5分钟

复制代码

重启mysql

service mysql restart

复制代码

重新登录数据库,查看是否生效

show variables like '%connection_control%';

复制代码

e48ebc65674daa141db036326d28084b.png

验证

输入密码错误5次后,将不可以再输入密码

8fac08c0102932423be9ad9db865f8c1.png

至此登录限制就完成了

扩展

静态安装插件

上面提供的方式为动态安装,静态安装方式如下:

vim /etc/my.cnf

复制代码

增加如下配置

plugin-load-add = connection_control.so

复制代码

插件卸载

UNINSTALL PLUGIN CONNECTION_CONTROL;

UNINSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;

复制代码

插件参数

connection_control_failed_connections_threshold:失败登陆次数达到此值后触发延迟。值域:[0, INT_MAX32(2147483647)],0表示关闭此功能。默认值为3。

connection_control_max_connection_delay:登陆发生延迟时,延迟的最大时间;此值必须大于等于connection_control_min_connection_delay。值域:[1,INT_MAX32(2147483647)]。默认值:INT_MAX32。单位:毫秒。

connection_control_min_connection_delay:登陆发生延迟时,延迟的最小时间,此值必须小于等于connection_control_max_connection_delay。值域:[1000, INT_MAX32(2147483647)]。默认值:1000。单位:毫秒。

延迟的时间如何计算

一旦连续的失败登陆次数超过设定阈值,那么就会产生延迟,并且延迟随着失败次数增加而增加,上限为connection_control_max_connection_delay;

具体的计算方式如下:

MIN ((failed_attempts - threshold) * MIN_DELAY), MAX_DELAY)

总结

至此,文章结束,欢迎大家留言或者关注公众号一起讨论。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值