我正在开发一个多虚拟主机环境。我已经为Mysql安装了PhpMyadmin。
环境配置如下:
one.domain.com
two.domain.com
onlyphpmyadmin.domain.com现在,如果我加入了三个域中的一个
http://one.domain.com/phpmyadmin/
http://two.domein.com/phpmyadmin/
http://onlyphpmyadmin.domain.com/phpmyadmin/结果是相同的,允许访问Phpmyadmin。
我们的目标是获得下面这样的情况
http://one.domain.com/phpmyadmin/ --> access denied
http://two.domein.com/phpmyadmin/ --> access denied
http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed没有类似的黑客
<?php
if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com')
die('access denied');
...
?>在一些Phpmyadmin文件上。
这里是我的Phpmyadmin配置文件
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>发布于 2013-03-13 08:26:46
删除别名声明
Alias /phpmyadmin /usr/share/phpmyadmin,并将其放入相关的vhost上下文中。
<VirtualHost *:80>
ServerName onlyphpmyadmin.domain.com
.
.
.
Alias /phpmyadmin /usr/share/phpmyadmin
</VirtualHost>将整个phpmyadmin配置包含到相关的vhost中可能更容易,也更可取。
<VirtualHost *:80>
ServerName onlyphpmyadmin.domain.com
.
.
.
include /path/to/phpmyadmin.conf
</VirtualHost>然后从服务器上下文中删除包含的内容,并重新启动apache以使更改生效。
发布于 2014-08-03 16:01:36
在RHEL/CentOS中,Apache加载/etc/httpd/conf.d/phpmyadmin.conf来设置/phpmyadmin别名。Directory指令最初还被设置为只允许来自本地主机的通信,因此在访问phpmyadmin时可能会收到一个403错误,比如"domain.com/phpmyadmin“。
使用以下方法,您可以设置RHEL/CentOS,使其只允许/phpmyadmin别名从特定的虚拟主机上工作。
/etc/httpd/con.d/phpmyadmin.conf
<Directory "/usr/share/phpmyadmin">
# Order Deny,Allow
# Deny from all
Allow from 127.0.0.1
</Directory>
#Alias /phpmyadmin /usr/share/phpmyadmin
#Alias /phpMyAdmin /usr/share/phpmyadmin
#Alias /mysqladmin /usr/share/phpmyadmin接下来,将别名指令添加到vhost并重新启动Apache。
请注意,这不是最安全的实现。请注意通过身份验证、IP限制或两者的结合来保护/phpmyadmin。
https://serverfault.com/questions/487335
复制相似问题