启用connection_control插件限制登录失败次数并设置延迟,2. 使用validate_password强制强密码策略,3. 限制远程访问并配置防火墙,4. 创建最小权限账户禁用root远程登录,5. 监控日志并设置告警,通过多层防护阻止暴力破解。

防止 MySQL 暴力破解登录的关键在于限制攻击者反复尝试用户名和密码的能力。这需要从访问控制、账户安全策略和系统监控等多方面入手。以下是几个实用且有效的措施。
MySQL 本身不自带账户锁定功能,但可以通过插件来实现。推荐使用 validate_password 和 connection_control 插件来限制登录尝试次数。
- 安装 connection_control 插件:INSTALL PLUGIN connection_control SONAME 'connection_control.so'; INSTALL PLUGIN connection_control_failed_login_attempts SONAME 'connection_control.so';
SET GLOBAL connection_control_min_connection_delay = 1000; -- 延迟1秒起 SET GLOBAL connection_control_max_connection_delay = 5000; -- 最大延迟5秒
这样,多次失败后客户端必须等待更久才能再次尝试,显著降低暴力破解效率。
避免使用弱密码是防止被猜解的基础。通过 MySQL 的密码验证插件强制执行复杂度要求。
- 安装 validate_password 插件:INSTALL PLUGIN validate_password SONAME 'validate_password.so';
SET GLOBAL validate_password.policy = MEDIUM;
该策略会要求密码包含数字、大小写字母和特殊字符,有效提升破解难度。
大多数暴力破解来自网络。减少暴露面是最直接的防护方式。
bind-address = 127.0.0.1
不要使用 root 账户对外服务,应为每个应用创建独立账号,并限制其主机来源。
- 禁止 root 从远程登录:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');
FLUSH PRIVILEGES;
CREATE USER 'app_user'@'192.168.1.100' IDENTIFIED BY 'StrongPass!2024'; GRANT SELECT, INSERT ON app_db.* TO 'app_user'@'192.168.1.100';
及时发现异常登录行为有助于快速响应。
基本上就这些。关键不是依赖单一手段,而是组合使用访问控制、登录限制和日志监控,形成纵深防御。只要不让攻击者无限试错,就能有效阻断暴力破解。
以上就是如何在mysql中防止暴力破解登录的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号