Segurança do Apache

1

Eu tenho lido sobre a segurança do servidor / apache e encontrei uma contradição. Eu li que você não deve servir nenhum arquivo que não esteja dentro do escopo do Apache, mas me disseram que você deve manter os arquivos fora do escopo do Apache.

Minha configuração atual é:

Escopo do Apache: public_html / front. Na pasta frontal eu mantenho arquivos html, css e javascript. Eu também tenho uma pasta public_html / back, fora do escopo do Apache, que abriga meus arquivos de backend PHP, banco de dados e website. Todos os diretórios e arquivos do site têm um proprietário / grupo de dados www. Estou executando tudo isso no Free BSD.

Devo ter arquivos de site fora do Apache? Qualquer outra dica de segurança do servidor é apreciada.

    
por Paul 27.12.2011 / 02:20

2 respostas

3

Se você quiser os arquivos servidos pelo Apache, eles devem ser acessíveis pelo Apache.

No entanto, você não deve permitir que o Apache tenha acesso de gravação a nenhum arquivo que não seja necessário.

Se você tem um diretório de upload, você pode tornar o Apache capaz de escrever naquele diretório, mas ele não deve ser capaz de escrever em seus arquivos PHP, css e tal.

    
por 27.12.2011 / 02:28
1

Sua configuração é perfeitamente aceitável e eu diria que é mesmo recomendado.

Seu DocumentRoot deve idealmente apontar apenas para arquivos que precisam ser exibidos para usuários finais. Os scripts e outros recursos usados por seus scripts voltados para o cliente podem ficar em um diretório diferente (por exemplo, public_html / back, conforme você o possui). Por exemplo, os arquivos de configuração, as classes de conectividade do banco de dados, etc. ficariam nas pastas não públicas.

Se você colocar tudo sob o DocumentRoot, você terá que proteger esses arquivos para que eles não sejam exibidos para os usuários finais (por exemplo, bloqueando o download usando .htaccess ou usando PHP para eliminar o pedido quando esses arquivos forem carregado diretamente).

Uma observação que eu tenho é que o nome "public_html" sugere público para os arquivos. Em nossa empresa, temos o ponto DocumentRoot para public_html (ou equivalente) e os arquivos "back" em um diretório totalmente diferente para evitar confusão.

    
por 22.02.2012 / 15:58