Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从phpmyadmin和mysql阻止除localhost之外的所有用户_Mysql_Apache_Security_Phpmyadmin_Xampp - Fatal编程技术网

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

从phpmyadmin和mysql阻止除localhost之外的所有用户,mysql,apache,security,phpmyadmin,xampp,Mysql,Apache,Security,Phpmyadmin,Xampp,我最近在台式机上安装了XAMPP堆栈,并通过本地网络上的笔记本电脑进行连接。令我惊讶的是,我能够访问phpmyadmin并删除和更新所有mysql表。虽然我知道我不应该在生产中使用xampp(我也不是),但我仍然想学习如何管理这些明显的安全缺陷。我知道我可以通过.htacces()阻止对目录的访问,但我想要更全面一点的。如何限制从除localhost之外的任何位置运行mysql查询?有没有一条没有.htaccess的路?我认为这部分是root用户的目的 MySQL定义了具有域的用户。如果查看in

我最近在台式机上安装了XAMPP堆栈,并通过本地网络上的笔记本电脑进行连接。令我惊讶的是,我能够访问phpmyadmin并删除和更新所有mysql表。虽然我知道我不应该在生产中使用xampp(我也不是),但我仍然想学习如何管理这些明显的安全缺陷。我知道我可以通过.htacces()阻止对目录的访问,但我想要更全面一点的。如何限制从除localhost之外的任何位置运行mysql查询?有没有一条没有.htaccess的路?我认为这部分是root用户的目的

MySQL定义了具有域的用户。如果查看
information\u schema
数据库中的
user\u privileges
表,您会发现它们都有域。如果您的所有用户都严格定义为localhost,则不会有远程访问

此外,您还可以编辑my.cnf以关闭对数据库的tcp访问,强制所有连接通过套接字连接。在
[mysqld]
下,包括行
跳过网络
。您必须配置所有应用程序以使用套接字连接,但无论如何,我更喜欢套接字

如果phpMyAdmin与数据库安装在同一台计算机上,则这对保护您的数据不受使用phpMyAdmin的人的攻击没有任何作用。最安全的做法是扔掉那个应用程序。然而,这通常是不实际的,因为它是一个有用的工具,所以您需要配置phpMyAdmin以要求用户对自己进行身份验证。这意味着不将密码放入配置文件中。您需要考虑在重新验证之前需要多长时间的会话,以及诸如此类的事情

每当我尝试配置phpMyAdmin时,它总是让我怒不可遏,超过一千个太阳,但它绝对可以进行设置,因此每次通过phpMyAdmin连接到数据库时都需要密码。您可以进一步限制phpMyAdmin滥用者可以做的事情是确保它仅作为具有有限权限的用户连接(例如,只能修改您目前正在处理的数据库)