Ponha as senhas e as chaves num arquivo de configuração fora da pasta pública, com permissão de leitura só para a sua conta, e deixe o código ler esse arquivo. Assim uma senha nunca fica num arquivo que o navegador consiga abrir, nunca vai para um repositório, e muda-se num só lugar.
Montar, passo a passo
| 1 |
No File Manager, crie uma pasta ao lado de public_html (não dentro), por exemplo /home/SUACONTA/config.
|
|
| 2 |
Nela crie um arquivo, por exemplo app.env, com uma linha por segredo, no formato NOME=valor.
|
|
| 3 |
Dê ao arquivo a permissão 600 (Change Permissions, no File Manager): só o dono lê e escreve. O PHP da sua conta corre como a própria conta, por isso consegue lê-lo.
|
|
| 4 |
No código, leia o arquivo em vez de escrever a senha lá dentro.
|
|
| 5 |
Confirme que o arquivo não está acessível: tente abri-lo no navegador, a partir do endereço do seu site. Tem de dar 403 ou 404.
|
|
O arquivo:
DB_HOST=localhost
DB_NAME=conta_basedados
DB_USER=conta_utilizador
DB_PASS=a-palavra-passe
E a leitura, sem instalar nada:
<?php
$cfg = parse_ini_file('/home/SUACONTA/config/app.env', false, INI_SCANNER_RAW);
$pass = $cfg['DB_PASS'];
Se o projeto usa o Composer, a biblioteca vlucas/phpdotenv lê arquivos .env e é o que as frameworks costumam trazer. Veja o Composer na hospedagem compartilhada.
Se o .env tem de ficar dentro do site
Algumas aplicações esperam o .env na raiz do projeto. Aí, o que protege é a estrutura: a pasta pública deve ser só a public da aplicação, como se descreve em pôr uma aplicação Laravel a rodar. E acrescente o bloco que bloqueia arquivos que começam por ponto, descrito em .htaccess para projetos PHP.
Duas boas práticas a juntar. Use valores diferentes para o site de testes e para o site de verdade, para um engano num não afectar o outro. E dê a cada serviço a sua senha: se uma se perder, só se muda uma.
|
Um .env em public_html é público. Qualquer pessoa que escreva o endereço baixa as suas senhas, e há robôs que procuram precisamente esses nomes de arquivo. Se isso aconteceu, mude já as senhas (a do banco de dados, no cPanel, e as chaves de qualquer serviço externo), em vez de só apagar o arquivo.
|
|
Não envie o .env para um repositório. Ponha-o no .gitignore. Um segredo que passou pelo Git fica no histórico mesmo depois de apagado. Veja o Git no cPanel.
|
|
Isto não criptografa nada. Quem tem acesso aos arquivos da conta lê o arquivo, e as nossas cópias diárias contêm-no, tal como as que baixar. Guarde as suas cópias com cuidado. Dê ao banco de dados um usuário só com os privilégios de que a aplicação precisa: criar um usuário e dar-lhe os privilégios certos.
|
|
Não sabe se algum arquivo com segredos está acessível pelo navegador? Diga-nos o domínio e verificamos consigo.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Hospedagem de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde R$ 36,30/mês (plano de 3 anos, com cupom) Ver planos |