如何限制对 phpmyadmin 的访问? [复制]

Posted

技术标签:

【中文标题】如何限制对 phpmyadmin 的访问? [复制]【英文标题】:How to restrict access to phpmyadmin? [duplicate] 【发布时间】:2011-04-10 22:01:42 【问题描述】:

可能重复:How to secure phpMyAdmin

我使用 phpmyadmin 来预览我网站的数据库。但是,每个人都可以通过输入example.com/phpmyadmin来访问我的phpmyadmin的登录页面

我不是网络安全方面的专家,但我认为这不是很安全。

如何限制对登录页面的访问(可能创建一些别名,例如 example.com/a4ebb72d )。 我听说只允许指定 IP 访问,但这无济于事,因为我已经动态分配了 IP。

非常感谢您的提示。

【问题讨论】:

可能重复:***.com/questions/2631269/how-to-secure-phpmyadmin 将名称从 /phpmyadmin 更改为其他名称,机器人和漏洞扫描程序会查找该目录。您还应该增加额外的安全层。 【参考方案1】:

我想您可以将 phpMyAdmin 安装在防火墙后面的目录中,这样只有具有内部访问权限的用户才能访问它。

【讨论】:

【参考方案2】:

我会让该服务器在 127.0.0.1 上侦听,然后通过 SSH 使用端口转发...

确保服务phpMyAdmin的服务器只服务于127.0.0.1,然后运行

$ ssh -L4545:localhost:80 yourserver.com

然后将您的浏览器指向http://127.0.0.1:4545/phpmyadmin,只要您的 SSH 会话处于活动状态,您就应该能够访问 phpmyadmin。您甚至可以制作一个 shell 脚本来自动执行此操作。

这也适用于 PuTTY。

【讨论】:

谢谢,看起来不错,我试试。但是,隧道不会导致页面加载缓慢吗? 我使用这种隧道取得了很好的效果。事实上,我将它用于所有类型的代理工作。 @polemon 你能告诉我如何让phpMyAdmin 服务于 127.0.0.1,我是新手 :-)。 @NullPointer 有很多方法。您可以启动一个专用的网络服务器实例,但您也可以将您的网络服务器配置为仅将 phpmyadmin 目录提供给 localhost。【参考方案3】:

暴露 phpMyAdmin 的任何部分都存在潜在风险。你可以使用 Apache 的 Allow/Deny 指令:

Order Deny,Allow
Deny from All
Allow from 12.34.56.78

12.34.56.78 替换为您的 IP 地址,并将其放入 phpMyAdmin 文件夹中的 .htaccess 文件中。

【讨论】:

如果 OP 没有明确表示 IP 限制对他没有用处,这将是一个很好的答案。【参考方案4】:

如您所说,您可以将目录名称更改为不易猜到的名称。

您也可以将目录(或父目录,如果您不能直接放在phpmyadmin 目录中)置于密码保护using .htaccess 下。不管这种感知增强的安全性如何,它可能不会更安全。毕竟,phpMyAdmin 和.htaccess 一样需要登录名和密码,所以如果你使用弱密码或密码做法,你仍然同样容易受到攻击,所以显然要确保两个用户/密码组合都是唯一的和强大。

您能做的最好的事情是确保您所有的 phpMyAdmin 用户/密码都是安全的,并且您只将它们委托给您信任的人。请记住,phpMyAdmin 允许删除表和整个数据库,因此请保持定期备份并不断确保服务器上数据的完整性,因为实际上隐藏目录名称或将其置于另一个登录屏障之后才值得密码实践从一开始就尽可能安全。

【讨论】:

以上是关于如何限制对 phpmyadmin 的访问? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 14 + Nginx + PHPMyAdmin:如何通过 IP 地址限制访问?

限制应用程序本身的 phpmyadmin 访问

如何禁止用户访问 phpMyAdmin 登录页面? [复制]

为啥云函数 URL (Firebase) 可以公开访问?如何限制对特定外部呼叫的访问? [复制]

访问phpmyadmin页面空白处理方法?

访问phpmyadmin页面空白处理方法