从 phpmyadmin 和 mysql 阻止除 localhost 之外的所有用户
Posted
技术标签:
【中文标题】从 phpmyadmin 和 mysql 阻止除 localhost 之外的所有用户【英文标题】:Block all users except localhost from phpmyadmin and mysql 【发布时间】:2013-05-04 08:54:24 【问题描述】:我最近在台式机上安装了 XAMPP 堆栈,并通过本地网络上的笔记本电脑进行连接。令我惊讶的是,我能够访问 phpmyadmin 并删除更新所有 mysql 表。虽然我知道我不应该将 xampp 用于生产(而且我不是),但我仍然想学习如何管理这些类型的明显安全漏洞。我知道我可以通过 .htacces (http://forum.directadmin.com/showthread.php?t=29089) 阻止对目录的访问,但我想要更全面的东西。您将如何限制从本地主机以外的任何地方运行 mysql 查询?有没有.htaccess 的方法?我认为这部分是root用户的目的。
【问题讨论】:
【参考方案1】:MySQL 定义了具有域的用户。如果您查看information_schema
数据库中的user_privileges
表,您会发现它们都有域。如果你的所有用户都被严格定义为 localhost,就不会有远程访问。
另外,您可以编辑 my.cnf 以关闭对数据库的 tcp 访问,强制所有连接都通过套接字进行。在[mysqld]
下,包含skip-networking
行。您必须配置所有应用程序以使用套接字连接,但无论如何我更喜欢套接字。
如果 phpMyAdmin 与数据库安装在同一台机器上,这将无法保护您的数据免受使用 phpMyAdmin 的人的影响。 最安全的事情是摆脱那个应用程序。然而,这通常不切实际,因为它是一个有用的工具,因此您需要配置 phpMyAdmin 以要求用户进行身份验证。这意味着不要将密码放在配置文件中。您需要考虑在重新认证之前会话需要多长时间,诸如此类。
每当我尝试配置 phpMyAdmin 时,它都会让我感到比一千个太阳还要热,但绝对可以进行设置,因此每次通过 phpMyAdmin 连接到数据库时都需要密码。您可以进一步限制 phpMyAdmin 滥用者可能造成的损害,确保它仅以具有有限权限的用户身份连接(例如,只能修改您目前正在处理的数据库)。
【讨论】:
以上是关于从 phpmyadmin 和 mysql 阻止除 localhost 之外的所有用户的主要内容,如果未能解决你的问题,请参考以下文章
#1045 无法从 phpMyAdmin 和命令行登录到 MySql 服务器
如何从 mysql 工作台中的 phpmyadmin 检索数据