Estou trabalhando em um ambiente de vários hosts virtuais. Eu instalei o PhpMyadmin for Mysql Remote Control.
O ambiente é configurado como abaixo:
one.domain.com
two.domain.com
onlyphpmyadmin.domain.com
Agora, se eu acessar um dos três domínios
http://one.domain.com/phpmyadmin/
http://two.domein.com/phpmyadmin/
http://onlyphpmyadmin.domain.com/phpmyadmin/
o resultado é o mesmo, o acesso ao Phpmyadmin é permitido.
O objetivo é obter uma situação como esta abaixo
http://one.domain.com/phpmyadmin/ --> access denied
http://two.domein.com/phpmyadmin/ --> access denied
http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed
com nenhum hack semelhante
<?php
if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com')
die('access denied');
...
?>
em algum arquivo Phpmyadmin.
Aqui meu arquivo de configuração 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>
apache-2.2
php
virtualhost
alesdario
fonte
fonte
No RHEL / CentOS, o Apache carrega /etc/httpd/conf.d/phpmyadmin.conf para configurar o alias / phpmyadmin. A diretiva Directory também é inicialmente definida para permitir apenas o tráfego do host local; portanto, você pode receber um erro 403 ao acessar o phpmyadmin como "domain.com/phpmyadmin".
Usando o seguinte, você pode configurar o RHEL / CentOS para permitir apenas que o alias / phpmyadmin funcione a partir de um host virtual específico.
/etc/httpd/conf.d/phpmyadmin.conf
Em seguida, adicione a diretiva de alias ao seu vhost e reinicie o Apache.
Observe que essa não é a implementação mais segura. Tome cuidado para proteger / phpmyadmin através de autenticação, restrições de IP ou uma combinação de ambos.
fonte