phpmyadmin 安全

Posted

技术标签:

【中文标题】phpmyadmin 安全【英文标题】:phpmyadmin security 【发布时间】:2010-10-17 03:31:45 【问题描述】:

我有一个带有 apache2、phpmysql 的生产服务器。 我现在只有一个站点(mysite.com)作为虚拟主机。我想把 phpmyadmin、webalizer 和 webmin 放在那里。到目前为止,我安装了phpmyadmin,它可以工作,但是整个互联网都可以访问mysite.com/phpmyadmin

如何将可见性降低到 192.168.0.0/16,以便防火墙后面的机器可以访问它?

【问题讨论】:

【参考方案1】:

1) 您可以在网络服务器级别执行此操作。

对 apache 使用允许/拒绝规则。如果您无法直接访问 apache 配置文件,则可以使用 .htaccess 文件。

<Directory /docroot>
    Order Deny,Allow
    Deny from all
    Allow from 10.1.2.3
</Directory>

2) 您可以使用 phpmyadmin 配置文件在应用程序级别执行此操作。

配置参数为:$cfg['Servers'][$i]['AllowDeny']['rules']

规则示例如下:

'all' -> 0.0.0.0/0
'localhost' -> 127.0.0.1/8
'localnetA' -> SERVER_ADDRESS/8
'localnetB' -> SERVER_ADDRESS/16
'localnetC' -> SERVER_ADDRESS/24

您可以在官方的 phpMyAdmin 配置文档中看到这一点。

http://www.phpmyadmin.net/documentation/#servers_allowdeny_order

【讨论】:

我做了选项 #2,添加 /usr/share/phpmyadmin 以允许 192.168.0.0/16 并且它似乎有效。谢谢。 选项 2 是要走的路。更简单,我宁愿在它运行任何 PHP 周期之前阻止它。 好的,我首先移动了 Apache 选项。 这样人们就不会感到困惑:对于所有早于那个的 cmets,当他们说选项 #2 时,他们实际上是指 Webserver 选项。【参考方案2】:

您将在 Apache 中使用一个名为 mod_access 的模块

您可以在 apache 配置文件或目录根目录的 .htaccess 文件中配置它。

这是一个简短的例子

<Directory /your_folder/location>
    Order Deny,Allow
    Deny from all
   Allow from 123.123.123.123
</Directory>

【讨论】:

【参考方案3】:

使用<Location> 指令(在服务器配置中或者如果允许,在.htaccess 中)。在那里,您可以使用Allow from 拒绝其他所有人除了某些特定来源的访问。

【讨论】:

以上是关于phpmyadmin 安全的主要内容,如果未能解决你的问题,请参考以下文章

phpMyAdmin 是不是对生产造成安全风险

每日安全资讯phpMyAdmin被曝存在严重CSRF漏洞可对数据库造成破坏

与 XAMPP 捆绑在一起的 phpmyadmin 4.7.4 的安全问题 [关闭]

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

phpmyadmin远程连接的问题

我可以在我的服务器的 D: 驱动器中安装 phpmyadmin 吗?