欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【[推荐]MySQL安全问题的一点心得】,下面是详细的分享!
[推荐]MySQL安全问题的一点心得
前两天在帮朋友整理他的主页空间时候,发现的一点关于MySQL可能大家都会忽略的问题:我们知道,在安装完MySQL后,它会自动创建一个root用户和一个匿名用户,其初始密码都是空,对于前者,很多参考资料上都会提醒大家要注意及时设定一个密码,而忽略了后者,大概是因为后者默认设定为只能在本机使用的缘故吧。
但如果你的MySQL是要提供给Web服务器作数据库服务的,忽略这个匿名用户的代价可能相当惨重,因为在默认设置下,这个匿名用户在localhost上几乎拥有和root一样的权限,这时候,如果你的客户拥有上传脚本文件、脚本文件可以进行MySQL数据库操作(比如允许操作MySQL的php)的权限已经可能将你的MySQL改动得面目全非了:
我今天帮朋友整理他的主页空间的时候,试着写了一个很简单的执行sql语句的php文件上传上去,其中连接字中的user,password我都试着置空,host=localhost,结果发现我的sql语句可以执行,于是执行select * from MySQL.user察看用户权限,发现这个用户在localhost权限非常高,连grant_priv都有,(察看的时候,会发现在root用户下有两行用户名、密码为空的,但各项权限有y\n的,就是这个匿名用户本地、远程权限设置了)
所以我试着用这个php页面创建一个新用户,并grant给他较高的权限,结果一举成功,这样我就可以用这个新用户通过我本机的MySQL client连接到这个网站的MySQL server,并用这个新建立的用户的管理权限对这个网站的MySQL server进行管理,看到自己可以进行这样轻易获得深入的数据库操作,我怎么还敢把朋友的主页空间的敏感资料放入这个MySQL server呢?
改进建议:
1、在安装完成MySQL 后,不仅改变root用户的的密码,也同时改变匿名用户的密码,方法类似改变root的密码的方式:
| 以下为引用的内容: MySQL> UPDATE user set password=PASSWORD('yournewpassword') where user=''; MySQL>FLUSH PRIVILEGES; |
3、除了root用户外,其他用户包括匿名用户(如果没有删除这个用户)不应该拥有grant权限,防止管理权限不受控制的扩散出去。
4、赋予用户update\delete\alert\create\drop权限的时候,应该限定到特定的数据库,尤其要避免普通客户拥有对MySQL数据库做操作的权限,否则你的系统设置很可能被替换掉。
5、检查MySQL.user表,取消不必要用户的shutdown_priv,reload_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非MySQL的其它信息出去。
6、如果不打算让你的用户使用MySQL数据库,在提供诸如php这样的脚本语言的时候,重新设置或编译你的php,取消它们对MySQL的默认支持。
以上所分享的是关于[推荐]MySQL安全问题的一点心得,下面是编辑为你推荐的有价值的用户互动:
相关问题:消防安全训练心得体会
答:在xx学习《消防安全法》的培训中,使我消防安全意识进一步加强,下面,我就参加本次演习训练谈谈我个人的一点心得体会: 一、认清消防安全工作的重要性。火灾的发生是现实生活中最常见、最突出、危害最大的一种灾难,是直接关系到人民生命安全、... >>详细
相关问题:安全知识讲座心得体会400字
答:今天,下午我们观看了安全知识的教育片,使我们又懂得了很多的安全知识,都有什么时候我来给你们讲一讲吧! 如果我们在游泳或钓鱼的水池边玩耍时,不慎落水要大声呼救引起路人的注意,要保持头到能呼吸.不能在楼梯上玩耍打闹,比免碰撞.你如果看到有小... >>详细
相关问题:大学生安全教育知识心得体会
答:《大学生安全教育》心得体会 “生命”,一个多么鲜活的词语;“幸福”一个多么美妙的境界; “安全”,一个多么古老的话题。 安全是革命的本钱,健康是人生的基础,但是,如果不注意,“本钱”将花尽,“基幢将毁掉。届时,即使我们满腹经纶,也只是昔日... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
