Pergunta

Como você pode permitir que um script PHP para escrever para um ficheiro com alta restrições de segurança, tais como permitir que um único usuário escrever para ele?

A dificuldade parece ser a de que um script PHP está sendo executado como um baixo-permissões de usuário (talvez o apache, ou www, ou de ninguém?), e mesmo se eu chown apache the_writable_file, o diretório é em pode não ser escrita para o baixo nível de usuário.Em geral, qual é a forma habitual que o PHP pode trabalhar com arquivos locais, de uma forma segura?

Foi útil?

Solução

Infelizmente, no shared hosts que usam mod_php, não há nenhuma maneira de restringir o acesso para proteger arquivos para seu aplicativo da web e o utilizador de início de sessão.

A solução é executar o seu aplicativo web como o seu usuário de login.Quando você fizer isso, as permissões de arquivo UNIX corretamente pode bloquear todos os outros.Há várias maneiras de implementar e que, inclusive SuExec, suPHP, ou a execução de PHP com FastCGI com mod_fcgid ou mod_proxy_fcgid.O FastCGI é a minha maneira favorita.

Outra solução é usar um servidor dedicado ou servidor virtual privado.

Outras dicas

Com certeza, chgrp apache the_writable_file e chmod g+w the_writable_file.Depois disso, só o seguro do usuário e o usuário do apache vai ser capaz de gravar o arquivo.Desde que o usuário do apache, normalmente, é proibido de fazer logon, você só terá de se preocupar com os usuários da web de escrita para o seu seguro de arquivos, usando o http daemon.

Todas as pastas precisa ter permissões de execução.

Por exemplo, se o ficheiro está em /foo/bar/the_writable_file, os diretórios "foo" e "bar" ambos precisam ter executável, a permissão para acesso the_writable_file, mesmo se eles não têm permissão de leitura/gravação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top