Por que é tão importante remover 777 permissões?

3

Eu estou escrevendo o instalador para o meu aplicativo web PHP. Requer que o usuário altere as permissões de alguns arquivos e diretórios (config.php, cache, uploads, .htaccess) para o 777 (para que seja gravável). Eu vi em muitos aplicativos que o instalador requer que o usuário reverta as permissões (para config.php e outras) de volta para 644.

Por que isso é tão importante? Por que não posso deixar com o 777? Eu acho que é algum tipo de preocupação de segurança, mas o que exatamente pode acontecer se eu deixar esses arquivos graváveis?

    
por radex 01.05.2011 / 14:52

4 respostas

7

Os scripts PHP são executados no servidor da web. Deixar as permissões dessa maneira fará com que o usuário do servidor da Web ( www-data ou apache ) consiga gravar nesses arquivos. No caso do seu script ter algum bug ou vulnerabilidade, essas permissões permitirão que o servidor da Web (e, portanto, os agentes externos) alterem o conteúdo dos arquivos e do sistema de arquivos. Coisas que podem acontecer:

  • Perda de tudo (a permissão de gravação também é permissão para excluir os arquivos);
  • Adição de material indesejado: alguns ataques visam adicionar dados ao seu site, como scripts maliciosos, páginas falsas ou scripts para fishing e spamming. Como o seu servidor da Web pode gravar arquivos no sistema de arquivos, os dados podem ser carregados em qualquer lugar em que houver permissões.

Então, sim, é uma ideia horrível deixar permissões nesse estado.

    
por 01.05.2011 / 15:06
4

777 é especialmente ruim. Isso significa que qualquer um pode excluir arquivos e criá-los. Eu crio um arquivo, você apaga esse arquivo.

Se você precisar usar o 777, use 1777 - isso diz ao sistema operacional para permitir que apenas o proprietário do arquivo o exclua.

Caso contrário, é exatamente como disse o coredump - um erro em um script que me permite escrever novos arquivos ou sobrescrever arquivos existentes me permite fazer qualquer coisa que eu quiser ao seu servidor web porque eu sobrescrevo / cria arquivos como apache / nobody / www-data, o servidor web servirá meu conteúdo malicioso em vez do conteúdo original.

Idealmente, o processo do servidor da Web não pode gravar nos diretórios que ele lê para evitar esses problemas.

    
por 01.05.2011 / 15:18
0

qualquer pessoa que tenha acesso a esse diretório (por exemplo, via ftp) poderá ler, gravar e executá-los. você, como desenvolvedor, precisa passar pelos cenários da intenção de uso e fechar possíveis brechas de segurança ...

    
por 01.05.2011 / 15:26
0

Outros usuários nesse servidor / estação de trabalho podem modificar o arquivo. Exemplo, usando o desktop Ubuntu, make / home 777 e ele pode ser deletado ou modificado por qualquer usuário.

O 777 é especialmente um risco de segurança quando você está em uma hospedagem compartilhada.

    
por 21.09.2014 / 04:05