A melhor maneira de colocar arquivos confidenciais no servidor da Web e mantê-los acessíveis?

3

Eu preciso colocar uma chave privada no meu servidor web para uso com um script php, então eu preciso do servidor web para poder acessar o arquivo no script php, mas não permitir que usuários externos possam acessar este arquivo.

Basicamente, o que eu estou perguntando é onde é o melhor lugar para colocar o arquivo no sistema de arquivos, e como eu defino permissões / Quais são as permissões corretas para definir?

Eu tenho um Ubuntu 11.04 Server recentemente configurado e estou usando o pacote LAMP.

    
por user1876122 03.01.2013 / 19:54

2 respostas

2

Fora da raiz do documento. Talvez /etc/ssl/www/mykey.ext.

sudo mkdir -p /etc/ssl/www
sudo chown root:www-data /etc/ssl/www
sudo chmod 0750 /etc/ssl/www
sudo cp mykey.ext /etc/ssl/www/
sudo chown root:www-data /etc/ssl/www/mykey.ext
sudo chmod 0640 /etc/ssl/www/mykey.ext

Agora só está disponível para root, sudoers e www-data. No entanto, se o Apache estiver configurado com o usuário dirs (~ / public_html), qualquer usuário poderá pedir ao Apache para lê-lo. Ou qualquer usuário que possa criar documentos que serão lidos pelo servidor da Web poderá lê-lo.

Uma solução melhor é ler a chave de um banco de dados ou como uma variável dentro do script. No método de banco de dados, proteja o aplicativo da Web da injeção SQL.

    
por user8290 03.01.2013 / 20:16
0

Você também pode verificar a edição do poderoso arquivo .htaccess . link Pesquise no google para mais resultados ...

    
por CodeArtist 03.01.2013 / 20:34