phpmyadmin 安全
Posted
技术标签:
【中文标题】phpmyadmin 安全【英文标题】:phpmyadmin security 【发布时间】:2010-10-17 03:31:45 【问题描述】:我有一个带有 apache2、php、mysql 的生产服务器。 我现在只有一个站点(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被曝存在严重CSRF漏洞可对数据库造成破坏