快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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用户下有两行用户名、密码为空的,但各项权限有yn的,就是这个匿名用户本地、远程权限设置了)

  所以我试着用这个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、赋予用户updatedeletealertcreatedrop权限的时候,应该限定到特定的数据库,尤其要避免普通客户拥有对MySQL数据库做操作的权限,否则你的系统设置很可能被替换掉。

  5、检查MySQL.user表,取消不必要用户的shutdown_priv,reload_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非MySQL的其它信息出去。

  6、假如不打算让你的用户使用MySQL数据库,在提供诸如php这样的脚本语言的时候,重新设置或编译你的php,取消它们对MySQL的默认支持。
返回类别: 教程
上一教程: SQL SERVER与EXCEL数据互导
下一教程: SQL SERVER日志清除的两种方式

您可以阅读与"MYSQL安全问题(匿名用户)的一点心得"相关的教程:
· 关于SQL SERVER的一些安全问题
· 对数据库连接问题的一点总结
· 我整理的一点关于MYSQL4.1的经验
· PHP中操作MYSQL的一些要注重的问题
· 关于PHP中操作MYSQL数据库的一些要注重的问题
    微笑服务 优质保证 索取样品