从phpmyadmin和mysql中阻止除localhost之外的所有用户

时间:2013-05-09 19:08:12

标签: mysql apache security phpmyadmin xampp

我最近在桌面上安装了XAMPP堆栈,并通过本地网络上的笔记本电脑连接。令我惊讶的是,我能够访问phpmyadmin并删除更新所有mysql表。虽然我明白我不应该使用xampp进行生产(我不是),但我还是想学习如何管理这些明显的安全漏洞。我知道我可以通过.htacces(http://forum.directadmin.com/showthread.php?t=29089)来阻止对目录的访问,但我想要一些更全面的东西。你如何限制从localhost以外的任何地方运行mysql查询?有没有.htaccess的方法?我认为这部分是root用户的目的。

1 个答案:

答案 0 :(得分:0)

MySQL使用域定义用户。如果查看user_privileges数据库中的information_schema表,您会看到它们都有域。如果所有用户都严格定义为localhost,则不会进行远程访问。

此外,您可以编辑my.cnf以关闭对数据库的tcp访问,强制所有连接都通过套接字。在[mysqld]下,包含第skip-networking行。您必须配置所有应用程序以使用套接字连接,但我还是更喜欢套接字。

如果phpMyAdmin安装在与数据库相同的计算机上,则无法使用phpMyAdmin保护您的数据。 最安全的要做的就是摆脱那个应用程序。然而,这通常是不实际的,因为它是一个有用的工具,因此您需要配置phpMyAdmin以要求用户进行身份验证。这意味着不要将密码放在配置文件中。您需要考虑在重新认证之前会话的持续时间,以及类似的事情。

每当我尝试配置它时,phpMyAdmin就会让我感受到比一千个太阳更热的愤怒,但是每次通过phpMyAdmin连接数据库时都可以设置密码。你可以进一步限制phpMyAdmin滥用者可以做的损害,确保它只作为具有有限权限的用户连接(例如,只能修改你正在处理的数据库)。