É seguro para negar o acesso ao arquivo .ini no .htaccess?
Pergunta
Eu tenho um arquivo .ini com informações confidenciais em meu aplicativo php WAB. I negado o acesso a ele usando um arquivo .htaccess:
<files my.ini>
order deny,allow
deny from all
</files>
Eu não tenho acesso a pastas fora do htdocs, então eu não posso mover o arquivo ini fora do território navegável.
É a minha solução segura?
Solução
O .htaccess vai bloquear o acesso a partir da web. No entanto, se você estiver usando um ambiente de hospedagem compartilhada, pode ser possível para outros usuários para acessar o seu ini. Se a sua em um servidor (virtual privada) e você é o único usuário para o servidor que você está seguro.
Em caso de hospedagem compartilhada depende da configuração do servidor. Para mais informações, leia: PHP segurança em um ambiente de hospedagem compartilhada
Você pode temporariamente instalar PHPShell e navegar através do sistema de arquivos do servidor para verificar se o servidor é vulnerável. (Requer algum conhecimento de linha de comando)
Outras dicas
Outra solução boa e meu favorito pessoal (especialmente quando desenvolver código que não ficassem sob controle minha rigorosas .htaccess) está protegendo o arquivo .ini real. Graças a uma alma caridosa aqui - as notas de usuários: PD em frozen-bits de ponto de , o que eu faço é a seguinte:
my.ini -> changes to my.ini.php
my.ini.php começa:
;<?php
;die(); // For further security
;/*
[category]
name="value"
;*/
Funciona perfeitamente! Acesse o arquivo diretamente e tudo que você vê é ';' e é uma, arquivo .ini parseable válido. O que há para não gostar:)
Algumas notas sobre a implementação real (desculpas se isso conta como "Overshare" mas talvez salvar alguém algum tempo):
- Este arquivo faz o meu IDE muito chateado e ele continua tentando auto-reformatação que faz então PHP virada. Bênçãos estejam sobre Notepad ++.
- Não se esqueça do
;*/
fechando. Ele ainda funciona se você deixá-lo fora, mas PHP avisa que ele está prestes a tornar-se chateado.
Ordenado.
O arquivo não será visível a partir apache. Obviamente, a melhor opção é colocá-lo fora da raiz do seu site. Se você não pode fazer isso, arquivos .htaccess (ou directivas semelhantes em suas configurações Apache) é praticamente a sua única opção.