Primeiro, altero as permissões de arquivo do seu cfg e dos arquivos que residem nele.
Se você armazenar as configurações do banco de dados, este é um acesso de leitura e o acesso para gravação deve ser removido.
É bom ter seu Daemon HTTP Apache - ambiente configurado seguro, mas essa é outra camada de segurança. Seu PHP - Instalação é executado dentro do contexto de usuário do seu Daemon HTTP, então eu pessoalmente removerei o acesso de leitura para o grupo.
Eu me pergunto sobre os testes que você realizou. A pasta cfg - parece não estar sob seu DocumentRoot, então parece ser inacessível pelo seu HTTP - Server à primeira vista.
Mas as pessoas que tentam invadir sua instalação não contam com esse tipo de abordagem.
Você tem AllowOverride All
Ordem permitir, negar
Permitir de todos
na sua configuração, o que significa simplesmente: Nenhum controle de acesso em tudo.
Você também declara o FollowSymLinks, que introduz outros impactos na segurança.
Portanto, esta instalação está muito longe de ser segura.
Você pode proteger sua pasta cfg - colocando um arquivo .htaccess - no DocumentRoot de suas instalações. As entradas nele podem proteger strongmente o acesso a arquivos e diretórios,
por exemplo,
< arquivos RELEASE_NOTES.txt >
encomendar permitir, negar
negar de todos os
< / Ficheiros > (tirado de um magento - instalação)
Se você quer saber dos impactos de segurança do FollowSymLinks:
Lembre-se que o PHP está rodando no contexto da sua instalação do Apache HTTP Daemon e que o PHP pode executar o Write-Operations no seu sistema de arquivos.
Se o PHP - Code for inserido em seu aplicativo criando links simbólicos nele para que alguém possa espionar seu sistema de arquivos criando apenas links simbólicos para as partes do sistema em que ele ou ela está interessado.
Colocando um simples .htaccess - Arquivo no seu diretório cfg - do formulário
Ordem permitir, negar
Negar de tudo
irá remover a capacidade de navegar neste diretório através do seu Daemon HTTP.
Se o seu api.php é o front controller do seu PHP - Installation / Webapp, você deve considerar o uso do mod_rewrite do Apache para reescrever todas as URLs solicitadas para apontar para o seu api.php,
por exemplo,
RewriteCond% {REQUEST_FILENAME}! -f
RewriteCond% {REQUEST_FILENAME}! -D
RewriteCond% {REQUEST_URI}! = / Favicon.ico
RewriteRule ^ api.php [L]
em um arquivo .htaccess - você coloca no diretório / api -,
que irá encaminhar todos os pedidos para o seu api.php.
por exemplo. localhost: 44448 / someURL? id = 988
vai se tornar um pedido localhost: 44448 / api.php? id = 988 internamente.
Para esclarecer:
Reescrever - regras não devem ser usadas para controle de acesso, elas têm principalmente o propósito de
alterando como as solicitações são processadas.
Muitos PHP - Frameworks ou CMS usam o RewriteRules para ter um ponto de entrada central para o aplicativo da web no qual os componentes do aplicativo são carregados, os componentes de roteamento podem ser chamados,
e traduções de URL - paramters para estruturas internas são executadas.
Por exemplo. Symfony2 traduz Query / e Post - parameters para uma estrutura mais orientada a objeto, encapsulando - a em um objeto.
O Symfony2 também utiliza conceitos de segurança lendo roteamento - informações e configurações antes de gerar a resposta HTTP, então, por exemplo, garantindo que uma autenticação tenha sido executada ou que um usuário tenha a função de usuário correta para acessar um caminho de URL.