apache 仅允许从本地主机访问phpmyadmin

qlckcl4x  于 2022-11-16  发布在  Apache
关注(0)|答案(3)|浏览(324)

我正在尝试配置我的服务器phpmyadmin,使其只能从本地主机访问,而不能从远程访问。

Alias /phpmyadmin /usr/share/phpmyadmin

 <Directory /usr/share/phpmyadmin>
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1

   Options FollowSymLinks
   DirectoryIndex index.php

</Directory>

所以,当我从远程访问phpmyadmin时,我得到了403禁止,这很好,但当我从localhost访问phpmyadmin时(即从使用远程桌面的服务器),我仍然得到403,而我认为这应该给予从localhost访问phpmyadmin。
谢谢你

jrcvhitl

jrcvhitl1#

我猜您使用的是Apache 2.4.x。在2.2和2.4之间,访问控制的语法发生了变化。您使用的OrderDeny语法适用于Apache 2.2,但不适用于2.4。在2.4中,它将类似于:

<Directory /usr/share/phpmyadmin>
    Require ip 127.0.0.1
    Options FollowSymLinks
    DirectoryIndex index.php
</Directory>

Reference from Apache upgrade docAccess Control docs中的一个或多个。

pw136qt2

pw136qt22#

我认为这应该工作,并使它,使您只能访问它在本地,它应该是这样的东西大部分,但:

<Directory /usr/share/phpmyadmin>
    Require local
    #......otherthings (also, only copy the line Require local)
kmynzznz

kmynzznz3#

逻辑错误

你们每个人都犯了一个大错。
PhpMyAdmin不是一个服务器,它只是一个以PHP脚本形式编写的客户端,由某个HTTP服务器(本例中为Apache)提供服务。
您想要艾德和其他人建议的是尝试禁用对HTTP服务器的phpmyadminvhost的访问,但仍然可以通过终端的mysql命令,使用任何其他客户端登录到基本服务器,登录到GUI客户端(如MySQL Workbench)或IDE的内置DB客户端。逻辑在哪里?
当然,您可以同时使用这两种技术(HTTP安全和MySQL安全),但是没有第二种技术,您的数据库仍然是不安全的。**PhpMyAdmin只是一个客户端!**它甚至有自己的机制来控制访问,但如果有人使用任何其他客户端(上面提到的),您的努力将是绝对没有价值的)。

溶液:

为了维护你的情况下,你应该创建一个专用的MySQL帐户与localhost访问(我可以床,在写这篇文章的时刻,它是/是%,这意味着全球),然后MySQL将控制所有传入的连接,以检查他们是否来自本地机器或来自世界。
只是不要忘记删除具有全局访问权限的帐户(%),并在所有更改后刷新权限。
另外,我总是建议创建一个用户,该用户拥有对一个专用数据库(ofc,而不是root)的所有权限。这样,即使您只是在许多数据库中工作的管理员,您也可以将意外更改其他数据库的风险降到最低。(专业提示,好的密码管理员将是您友好的幽灵守卫)。
我建议你在谷歌上搜索一下,全面了解一下这个主题,因为它对数据库安全非常重要,但是如果你从第一个答案开始就实现简单的解决方案,这也足够了。在MySQL上使用localhost限制,最好在防火墙端设置3306端口阻塞,是使用本地安装的PhpMyAdmin脚本100%安全地访问数据的完美解决方案(如果可能的话)。
下面引用another post的答案
第一个
P.S.你甚至不需要为此写SQL命令,你可以用... PhpMyAdmin为每个用户更改它。

相关问题