«
MySQL的安全设置123
»安全问题总是无比重要。比如,刚刚网易邮箱的数据库就给扒掉了。
作为安全专业毕业的人,虽然毕业也没进入安全领域,但是还是比较敏感的。因此,借这个机会,总结下MySQL与安全相关的内容。
MySQL初始化安装过程中,有一些细节需要注意:
1.空密码、匿名用户(删掉)
2.密码长度、复杂度、弱口令(用长密码,复杂密码,别总是用一套密码)
3.test库删掉(默认谁都能访问,就算不影响其他数据,我一直写数据,可以撑爆你的硬盘)
4.尽量提供最小的权限给用户,拒绝提供super、file、processlist、drop、truncate权限的
5.log访问安全(binlog可能暴漏密码)
6.什么用户run MySQL(小心黑客用MySQL导一个webshell到本地)
7.必要时只监听本地IP
8.数据目录的属主,防止其他用户修改
9.mysql_history(要不要定期清理一下)
其他问题:
1.自身Bug导致数据丢失(如知名的xid冲突问题),只能及时升级新版本了
2.SQL注入导致数据丢失、被错误修改(业务端做校验,富文本做检测)
3.手抖、误删数据(sql_safe_update可以防止)
这些很少用的方式:
1.审计插件(persona有)
2.SSL/TLS连接数据库
3.数据加密
但是,我们平时能做的、经常要做的、最重要的是:备份!备份!备份!