Sunday, February 19, 2012

AMP mais seguro!

XAMPP, LAMP, WAMP, e por aí fora, de certeza que muitos aqui já viram esta sigla algures, AMP quer tipicamente dizer Apache, MySQL e PHP, ou seja é uma combinação de 3 serviços num pacote de forma a podermos depois de o instalar, ter configurados os 3 serviços básicos para webhosting; se quiserem criar ou alojar páginas com outras capacidades, poderão ter de acrescentar alguns serviços, módulos, bibliotecas ou ferramentas a este pacote. O P extra em XAMPP por exemplo, acho que é de Perl.
Contudo, apesar de excelentes e "completos", estes pacotes (eu não tenho preferência especial por nenhum deles, uso há anos o XAMPP mas porque calhou, usei uma primeira vez, gostei e nunca me deu problemas por isso...) vêm todos com um "problema"

do qual muitos de nós não nos apercebemos, e alguns até não sabem; ao incializarmos os serviços de webhosting destes pacotes (Apache e MySQL) estamos a abrir portas da nossa máquina e se não tivermos um router entre o nosso PC e a internet ou se tivermos as coisas configuradas de forma desprotegida, corremos o risco de alguém poder ter acesso a esses serviços e alterar os nossos conteúdos (só para dar um exemplo do que pode acontecer) isto porque estes pacotes vêm com uma senha pré-definida que é normalmente "admin", "root" ou algo do género. Corremos assim o risco de alguém inserir esta senha e poder entrar no nosso gestor de base de dados (phpmyadmin) por exemplo.

Como ultrapassar isto?

Antes de mais, tive de reinstalar o XAMPP pois não o tinha nesta minha instalação do Windows ainda:



A instalação é simples, MUITO simples, é uma instalação do tipo "Next-Next-Next...", ainda com a possibilidade de instalarmos os pacotes como serviço, que eu escolhi não fazer pois não quero enfardar o startup do meu Sistema Operativo.
O XAMPP por acaso até tem um ficheiro readme que indica todas as senhas por defeito dos vários serviços do pacote: FTP, MySQL, Mercury e WebDAV.

Para mudar a password do MySQL basta alterar o ficheiro config.inc.php que se encontra em \xampp\phpMyAdmin.

Antes de mais devemos alterar a password do utilizador root do MySQL da seguinte forma:



De seguida devemos mudar disto:

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

para:

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'minha_senha';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

A tag auth_type diz que tipo de autenticação deve ser usado, podendo variar entre config, http, signon, ou cookie.

Bem podemos agradecer ao http://9gag.com/ruidurao por este post, a ideia foi dele e foi ele quem me explicou como fazer isto, ele só não tem ou não deve ter a mesma paciência que eu para escrever. Thanks a lot Ruca! :)

1 comment: