A listagem de diretórios é um recurso do servidor que exibe a lista de arquivos e pastas quando não há um arquivo de índice. Desativá-lo é uma etapa crítica para a segurança do site, evitando a divulgação não autorizada de informações. Este artigo aborda os riscos da listagem de diretórios, como desativá-la no Apache, Nginx e IIS, além das melhores práticas para proteger os diretórios do seu servidor.
O que é listagem de diretórios e por que desativá-la?
A listagem de diretórios é o comportamento padrão de servidores web que exibe todo o conteúdo de um diretório quando não existe um arquivo de índice, como index.html, index.php ou default.htm. O navegador então mostra os arquivos e pastas como links, permitindo que visitantes acessem ou façam download desses itens diretamente.
Embora esse recurso possa ser útil para compartilhamento rápido de arquivos ou depuração, ele representa um sério risco de segurança. Atacantes podem explorar a listagem de diretórios para encontrar arquivos sensíveis, como backups de banco de dados, arquivos de configuração (.env, config.php), logs ou scripts que deveriam permanecer privados. Essas informações podem ser usadas para ataques mais avançados, como forced browsing ou enumeração de diretórios.
Manter a listagem de diretórios ativada é como entregar um mapa de todos os seus arquivos confidenciais para potenciais atacantes.
Exemplo de uma listagem de diretórios ativa
Se a listagem de diretórios não estiver desativada, quando alguém acessa um diretório sem um arquivo de índice, verá uma exibição semelhante à seguinte.

Como desativar a listagem de diretórios em diferentes servidores
O método para desativar a listagem de diretórios depende do servidor web que você está utilizando. Abaixo estão guias técnicos para os servidores mais comuns: Apache, Nginx e IIS.
1. Desativar a listagem de diretórios no Apache
No Apache, você pode controlar a listagem de diretórios através do arquivo .htaccess ou da configuração do host virtual. Duas diretivas principais são frequentemente utilizadas: Options -Indexes e IndexIgnore.
Usar Options -Indexes
Adicione a seguinte linha ao seu arquivo .htaccess no diretório raiz ou dentro de um bloco <Directory> na configuração principal:
Options -IndexesEssa diretiva impede que o Apache gere listagens de diretórios. Quando um usuário acessa um diretório sem um arquivo de índice, o servidor retorna uma resposta 403 Forbidden. Este é o método recomendado, pois bloqueia completamente o acesso.

Usar IndexIgnore
Uma alternativa é a diretiva IndexIgnore, que oculta arquivos ou diretórios específicos da listagem. Exemplo:
IndexIgnore *Este comando oculta todos os arquivos, fazendo com que a listagem de diretórios pareça vazia. No entanto, ao contrário de Options -Indexes, o diretório permanece acessível se alguém souber o nome exato do arquivo. Portanto, o IndexIgnore é menos seguro.

Advertência: Se você usar Options -Indexes mas precisar permitir acesso a certos arquivos, pode combiná-lo com DirectoryIndex ou regras de reescrita.
2. Desativar a listagem de diretórios no Nginx
O Nginx utiliza o módulo ngx_http_autoindex_module para gerenciar a listagem de diretórios. Por padrão, o autoindex está desativado. No entanto, você pode garantir isso adicionando a seguinte configuração dentro de um bloco location ou server:
location / {
autoindex off;
}Para desativá-lo em todo o servidor, coloque-o no bloco http ou server. Para verificar se o autoindex está ativo, use nginx -T para visualizar a configuração completa.
3. Desativar a listagem de diretórios no IIS (Internet Information Services)
No IIS, a listagem de diretórios é gerenciada através do recurso “Directory Browsing”. Você pode desativá-lo pelo Gerenciador do IIS:
- Abra o Gerenciador do IIS, selecione o site ou diretório que deseja configurar.
- Clique duas vezes no recurso Directory Browsing.
- No painel Ações, clique em Desabilitar.
Alternativamente, você pode modificar a configuração através do arquivo web.config adicionando o seguinte elemento:
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>Método alternativo: criar arquivos de índice vazios
Se você não tem acesso à configuração do servidor, o método mais simples é criar um arquivo de índice vazio em cada diretório. Basta criar um arquivo chamado index.html (ou index.php) sem conteúdo. Quando os usuários acessarem o diretório, o servidor exibirá uma página em branco ou redirecionará para esse arquivo.
Essa abordagem funciona para sites pequenos, mas se torna impraticável para diretórios com milhares de pastas. Além disso, um arquivo de índice vazio permanece acessível e não oferece proteção se alguém adivinhar nomes de arquivos.
Para máxima segurança, combine arquivos de índice vazios com a desativação da listagem de diretórios no nível do servidor.
Melhores práticas de segurança para diretórios
Além de desativar a listagem de diretórios, considere estas etapas adicionais para fortalecer a segurança dos seus diretórios no servidor:
- Restrinja o acesso com autenticação: Use
.htpasswdno Apache ou autenticação integrada no Nginx/IIS para proteger diretórios administrativos. - Coloque arquivos sensíveis fora da raiz de documentos: Armazene arquivos de configuração e dados críticos em diretórios não acessíveis pela web.
- Audite regularmente: Utilize scanners de segurança ou crawlers para detectar diretórios que ainda tenham a listagem ativada.
- Desative a execução de scripts em diretórios de upload: Com
Options -ExecCGIno Apache ou regras equivalentes em outros servidores.
A OWASP (Open Web Application Security Project) recomenda sempre desativar a listagem de diretórios como parte do hardening do servidor. Você pode ler o guia oficial na página da OWASP sobre forced browsing.
Conclusão
Desativar a listagem de diretórios é uma etapa fundamental para proteger seu site. Seguindo os guias acima, você pode evitar a divulgação acidental de informações. Escolha o método que se adequa à sua infraestrutura de servidor: use Options -Indexes no Apache, autoindex off no Nginx ou desabilite o “Directory Browsing” no IIS. Combine essas medidas com outras práticas de segurança para criar uma defesa em camadas.
Para documentação adicional, visite as páginas oficiais do Apache mod_autoindex e do Nginx ngx_http_autoindex_module.


