É possível configurar permissão de arquivo no meu servidor apache para que os arquivos possam ser lidos somente por usuários selecionados?

1

Gostaria de saber se existe uma maneira de definir permissões de arquivo no meu servidor apache para que os arquivos possam ser servidos pelo apache, mas não possam ser lidos ou acessados por usuários selecionados. Basicamente, eu estou tentando descobrir se é possível "caixa-preta" partes da base de código PHP do meu projeto de consultores contratados.

    
por Jerome 30.03.2010 / 11:26

5 respostas

1

O Apache acessará os arquivos como um usuário específico do sistema operacional, geralmente chamado de "www-data" ou similar, pertencente a um grupo de sistemas operacionais específico (geralmente "www-data" ou similar).

Se os outros usuários estiverem acessando os arquivos através do servidor web, você precisará de algum controle de acesso em um nível acima do sistema operacional (digamos, nível de aplicativo). Por exemplo, você poderia implementar um controle de acesso trivial no php.

Se o que você deseja é impedir que outros usuários de sistema operacional acessem diretamente os arquivos no sistema de arquivos (não passando pelo servidor da Web), você pode simplesmente conceder permissão de leitura a um grupo de SOs para esse conjunto de arquivos e adicionar / remover sistema operacional usuários para esse grupo, de acordo com suas necessidades.

OBSERVAÇÃO: Acabei de interpretar sua pergunta, porque não ficou muito claro para mim. Talvez você possa esclarecer um pouco, para obter respostas mais adequadas.

    
por 30.03.2010 / 11:36
0

Faça com que os consultores trabalhem em um ambiente de desenvolvimento e lidem com a implantação em seu ambiente de produção quando entregarem o código pronto para ser ativado.

Qualquer outra abordagem terá pelo menos algum potencial para os consultores obterem acesso ao código para o qual você não deseja que eles tenham acesso.

    
por 30.03.2010 / 11:33
0

Se você quer proteger partes de sua aplicação de olhares indiscretos, então provavelmente deveria considerar o uso de um codificador PHP (o IonCube e o Zend Guard são opções populares). Por favor, não que isso exija que você instale uma extensão de decodificador, portanto, se você estiver em hospedagem compartilhada, certifique-se de entrar em contato com seu provedor de hospedagem para ver se esta é uma solução viável para você.

    
por 30.03.2010 / 12:48
0

Sim - isso é trivial.

Configure um grupo para as pessoas que devem ter permissão para ler os arquivos e inclua o usuário que seu servidor da Web executa, em seguida, defina suas permissões como rw-r ---- (0640) Note que não há como evitar o PHP scripts escritos pelos bandidos de ler os arquivos embora.

C.

    
por 30.03.2010 / 13:31
0

Depende do sistema operacional subjacente, no Unix esse tipo de restrição é totalmente possível.

Se você não quer confiar neles o suficiente para ler o código, a melhor maneira é:

  1. Restringir o acesso a todo o servidor apache, especialmente se for um ambiente de produção
  2. Faça com que usem o SVN ou outro software de versão e busque seu código remotamente do seu servidor
  3. Implemente uma arquitetura orientada a serviços, esse tipo de design pode ser bom para uma caixa-preta. Contanto que um serviço seja claramente documentado e funcione como esperado, não há necessidade de ver o código subjacente para desenvolver com ele.
por 30.03.2010 / 14:28