Introdução
Em aplicações PHP, alguns arquivos contêm informações sensíveis, como credenciais do banco de dados, chaves de API e configurações do sistema. Se esses arquivos forem acessíveis diretamente pelo navegador, um invasor pode obter informações críticas e comprometer toda a aplicação.
1. Movendo arquivos sensíveis para fora do diretório público
A melhor prática para proteger arquivos importantes é armazená-los fora do diretório público do servidor.
Estrutura segura de diretórios:
/var/www/
├── public/ (acessível ao navegador)
├── config/ (arquivos protegidos)
├── logs/ (registros da aplicação)
No código, referencie arquivos de configuração sem expô-los:
require_once __DIR__ . '/../config/database.php';
2. Bloqueando acesso via .htaccess
Caso não seja possível mover os arquivos, podemos impedir o acesso direto utilizando .htaccess
:
<Files "config.php">
Order Allow,Deny
Deny from all
</Files>
Isso impede que arquivos como config.php
sejam acessados diretamente pelo navegador.
3. Definindo permissões adequadas
Certifique-se de que arquivos sensíveis tenham permissões restritas:
chmod 600 config.php
Isso garante que apenas o usuário proprietário do servidor possa acessá-los.
4. Protegendo arquivos PHP com autenticação
Se um arquivo precisar ser acessado apenas por usuários autenticados, verifique a sessão antes de permitir a execução:
session_start();
if (!isset($_SESSION['usuario_logado'])) {
die('Acesso negado!');
}
Conclusão
Restringir o acesso direto a arquivos PHP sensíveis é essencial para proteger dados críticos. Mover arquivos para fora do diretório público, configurar .htaccess
, ajustar permissões e validar sessões são práticas fundamentais para manter a segurança da aplicação.
Por que restringir o acesso a arquivos PHP sensíveis é essencial?
Muitos ataques a aplicações PHP ocorrem porque arquivos críticos, como config.php
, database.php
e credentials.json
, estão acessíveis publicamente. Se um atacante conseguir baixar esses arquivos, ele pode obter credenciais do banco de dados e comprometer a aplicação inteira.
A melhor prática de segurança é armazenar arquivos sensíveis fora do diretório público do servidor. Caso isso não seja possível, o uso de .htaccess
e permissões de arquivos pode impedir acessos indevidos.
Outra abordagem é verificar a origem das requisições e impedir que arquivos críticos sejam carregados por usuários não autenticados. Essas medidas garantem que informações confidenciais permaneçam protegidas, reduzindo o risco de invasões.
Algumas aplicações:
- Evitar que credenciais do banco de dados sejam expostas.
- Proteger arquivos de configuração contra acessos não autorizados.
- Impedir que hackers acessem informações críticas do sistema.
- Garantir que apenas usuários autenticados possam executar determinados arquivos.
Dicas para quem está começando
- Mova arquivos sensíveis para fora do diretório público do servidor.
- Use
.htaccess
para bloquear o acesso direto a arquivos de configuração. - Ajuste as permissões de arquivos para impedir acessos indevidos.
- Evite armazenar credenciais diretamente no código-fonte.
- Utilize autenticação e controle de sessões para proteger arquivos importantes.
Contribuições de Renata Oliveira