【问题标题】:Recommened SQL Priviledges for MySQL users for CMS'es为 CMS 的 MySQL 用户推荐的 SQL 权限
【发布时间】:2009-10-30 16:11:44
【问题描述】:

我最近一直在试验许多 Web 开发应用程序,例如 Drupal、Moodle、Efront 和 Elgg。为了更好的安全性,我使用 Parallels 在 Mac OS X 10.4 内的虚拟 XP 机器上的 XAMPP 设置上运行测试服务器。我认为这应该很安全,对吧?

在安装像 Elgg 这样的软件时,它要求我在 MySQL 服务器中创建一个用户,以便它访问数据库。我想知道我创建新用户的方法是否正确,以及我应该授予这个用户什么权限。

目前,我通过进入 PHPMyAdmin、MySQL 数据库、用户表并插入新行来创建新用户。它是否正确?出于某种原因,它并不总是有效。

PS - 我应该为这一切烦恼,还是让每个软件都使用我的 root 帐户?

【问题讨论】:

  • 有些人可能不同意,但就个人而言,对于本地测试,我从不费心设置单独的用户,除非我想复制确切的服务器环境来调试场景。由于您已经在虚拟机上,我认为 root 很好,因为这当然不是具有实时数据的生产服务器。

标签: sql mysql security privileges


【解决方案1】:

您使用的 MySQL 用户权限非常重要,可以防止您被黑客入侵。您应该遵循最低权限访问系统。

在 PHPMyAdmin 中添加用户: 1)以root身份登录 2) 转到“权限”选项卡 3)点击“添加新用户”。

PHPMyAdmin 将 MySQL 权限分组为数据、结构和管理。

应禁用 Web 应用程序的“管理”权限,只有 root 应具有此访问权限。除非应用程序允许查询堆叠,否则在 SQL 注入漏洞利用中不能使用任何“管理”权限。 (大多数不允许这样做!)

在安装 Web 应用程序期间,需要“结构”权限来构建数据库,但在 Web 应用程序运行期间几乎不需要这些权限,因此可以将其关闭。

“数据”部分很棘手。 “文件”权限是您可以授予 Web 应用程序的最危险的权限。原因是因为它允许黑客利用 SQL 注入漏洞在您的服务器上读写文件。 “文件”访问是唯一可以给予攻击者远程代码执行 (RCE) 的权限,并且必须始终禁用。

最后但同样重要的是,Apache Friends XAMPP 是一款糟糕的软件。存在已知漏洞,并且近一年没有修补。我重新开始使用 Ubuntu 的 LAMP 安装,它既易于使用又安全。

【讨论】:

  • 谢谢。非常清晰,内容丰富,并且切中要害。正是我需要的。关于 XAMPP 的安全性,point 指出,并没有对 Windows 上的预构建安装有太多期望,但是,它只是在与 Internet 断开连接的虚拟机上运行的开发服务器......我有一个虚拟机躺在无论如何都是为了兼容性,所以我没有添加 linux 操作系统,而是决定在 Windows 中开发。此外,我永远无法完全习惯 Emacs 中迟钝的键盘快捷键。我现在也安装了 Backtrack 和 Ubuntu,但是嗯...
【解决方案2】:

如果你直接在用户表中插入行,那么你必须点击权限页面上的 FLUSH PRIVILEGES 链接来强制 mysql 再次查看用户表。

更好的方法是使用 phpmyadmin 上的权限页面来设置新用户。要到达那里,请单击左栏顶部的房屋徽标。然后在屏幕右侧,单击权限链接。

你绝对不应该让你的软件只使用 root 帐户。您应该为每个应用程序创建一个具有最严格权限的用户。

【讨论】:

  • 我也这么认为。我还想知道为什么新帐户无法正常工作,尽管重新启动了 MySQL 服务器。另外,现在如果我将我的应用程序切换到使用不同的用户,它是否需要一些新的配置。所有者或创建表的用户是否有特殊特权?另外,我如何找出应用程序正常运行所需的确切权限?我不想过分热衷于安全性和过程中的功能妥协。
  • 不,没有这样的“特权”。如果文档没有告诉您,则没有权威的方法来说明应用程序需要哪些权限。
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
相关资源
最近更新 更多