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;

  2、如非必要,删除这个匿名用户,这样所有人要使用MySQL 都必须提供用户名,即便日后出了问题,也容易查找问题的源头。

  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的默认支持。

时间: 2024-08-31 06:06:01

MySQL安全问题的一点心得的相关文章

MySql管理的一点心得

MySql数据库是中小型网站后台数据库的首选,因为它对非商业应用是免费的.网站开发者可以搭建一个"Linux+Apache+PHP+MySql" 平台,这是一个最省钱的高效平台.在使用MySql进行开发时,MySql自带的文档对于新手来说是份很好的参考资料.本文是我在使用MySql中的小小心得. 当前一般用户的开发环境多是Windows或Linux,用户可以到[url]http://www.mysql.com[/url]下载相关版本进行安装,在 windows中MySql以服务形式存在

MYSQL命令行模式管理MySql的一点心得_Mysql

MySql数据库是中小型网站后台数据库的首选,因为它对非商业应用是免费的.网站开发者可以搭建一个"Linux+Apache+PHP+MySql"平台,这是一个最省钱的高效平台.在使用MySql进行开发时,MySql自带的文档对于新手来说是份很好的参考资料.本文是我在使用MySql中的小小心得. 当前一般用户的开发环境多是Windows或Linux,用户可以到http://www.codepub.com/software/index.html下载相关版本进行安装,在windows中MyS

谈谈我对截取一定长度字符串的一点心得,欢迎指正

心得|字符串         vbs和js都提供了截取一定长度的字符串的函数,但有一个问题是这些函数都将中文字符视为1个字节,而不是正常的2个字节,如果这些输入的数据要提交到数据库中的话,很可能这些数据的真正长度回答与数据库中该字段所允许的最大长度,于是就出错了.        最开始我不会这样做,看了 cheery_ke 兄发表的帖子http://www.dev-club.com/club/bbs/showAnnounce.asp?id=1227955后才知道该怎么做.具体程序是'------

使用Photoshop制作黑白照片的一点心得

通常,黑白照片比彩色照片更能体现历史感和陈旧感.如果在拍摄的时候没想到调成黑白模式,那么我们可以使用Photoshop将彩色照片转换成黑白照片.转换的方法有很多,下面我们就一张小萝莉照片来探讨下制作黑白照片的一点心得吧! 素材: 大家跟着我的步骤做吧: 复制背景层,并执行菜单命令"图像"→"调整"→"去色",快捷键Ctrl+Shift+U,可以将图片彩色完全去掉,留下不同程度的灰度效果. 我们再换一种方式制作黑白照片.隐藏刚才的黑白图层,点击红圈

WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信

原文:WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信 最近工作需要,学习了一下winform内嵌webbrowser控件,然后与htm页面中的javascript交互调用的技术,因此有了这篇心得. 总的来说,javascript与winform的code互相调用,和web开发中javascript与服务器端代码通过ajax互相调用有类似之处. 下面就用三个例子来说明:   一.将WebBrowser控件放置在winform中,然后,写一个Page1.

关于敏捷和自动化测试的一点心得

不久前,参加Thoughtworks组织的一场自动化测试的分享,同事由于出差国外不能参加,特意嘱托我提问两个问题: 在互联网这个将"敏捷"与"持续集成"进行积极实践的环境里,"敏捷测试"与"自动化测试"成了一个大家经常探讨的话题, 那么自动化测试最佳的实行时间是在什么时候?如何推行最有效的自动化测试? 以下谨代表个人观点: 个人整理了一些测试最佳实践并参考查阅了一些测试理论的书籍,又综合了个人工作经历的一些经验,总结了以下几点

使用Webbrowser的一点心得体会

原文:使用Webbrowser的一点心得体会         自从用上VS2005后,发现多了个WebBrowser控件(.net 2003中不带),为图方便吧,有好多小工具就用这个写的,慢慢也有点体会了,总结一下,与网友们共享吧.         1.如何获得"打开网页出错"信息        在DocumentCompleted事件中,判断Document.Url.AbsoluteUri中的"res://":标志即可(以前总用e.Url,怪不得总截取不到)   

MySQL 5.7 学习心得之安全相关特性_Mysql

1,账号安全相关的特性 1.1:创建用户 5.7版本的用户表mysql.user要求plugin字段非空,且默认值是mysql_native_password认证插件,并且不再支持mysql_old_password认证插件.5.7用户长度最大为32字节,之前最大长度为16字节,并且CREATE USER 和 DROP USER 命令里实现了 IF [NOT] EXISTS 条件判断.5.7之后用户通过grant创建用户报warning.如: grant all on *.* to dxy@lo

分享个人对电子商务seo策略流程的一点心得

摘要: 对百度的SEO们深深感到苦逼与无奈的一点是,我们不能全心全意集中精力去提高电商网站的用户体验与良好的数据分析,因为百度的数据波动有时是没有规律而言.我经常对提问者说: 对百度的SEO们深深感到苦逼与无奈的一点是,我们不能全心全意集中精力去提高电商网站的用户体验与良好的数据分析,因为百度的数据波动有时是没有规律而言.我经常对提问者说:对付百度SEO,最重要的是淡定;策略上以调整+淡定为主.但是其实,我们愿意淡定,但是高层不愿意淡定,办法我们还是要想的.过了这么久,分享一下我个人对电子商务s