← Todas as verificações
SegurançaSeveridade típica: Médio

Scanner de listagem de diretórios

Verifica se pastas como /uploads ou /backup mostram a listagem de todos os seus ficheiros.

O que verifica

Este scanner verifica se pastas como /uploads ou /backup mostram uma lista navegável de todos os ficheiros que contêm. Acontece quando o servidor gera um índice automático por não encontrar uma página por omissão. O scanner só olha se essa listagem está visível.

Porque importa

Uma listagem aberta deixa qualquer pessoa navegar pelos teus ficheiros e descobrir documentos, cópias ou recursos que não pensavas mostrar. Transforma pastas privadas num diretório público fácil de explorar. Muitas vezes revela ficheiros de que nem te lembravas que estavam ali.

Como se corrige

Desativa a listagem de diretórios na configuração do teu servidor, uma opção que costuma chamar-se autoindex ou directory browsing. Coloca um ficheiro de índice por omissão nas pastas que devem ficar acessíveis. E evita guardar ficheiros privados em rotas servidas publicamente.

Como funciona esta verificação

O Scanaris pede sete pastas habituais do teu domínio: /uploads/, /images/, /assets/, /files/, /backup/, /static/ e /media/. Se alguma responder com uma página cujo título ou cabeçalho é "Index of …", o formato que o Apache, o nginx e a maioria dos servidores geram quando listam um diretório, abre um achado de severidade média com o caminho. Não se marca um 200 qualquer: uma aplicação de página única que devolve o seu HTML para todas as rotas não cumpre o padrão.

Porque importa

Uma listagem transforma uma pasta num catálogo navegável de tudo o que contém, incluindo o que nunca ligaste a partir de nenhuma página: cópias de segurança, exportações, documentos carregados por utilizadores, versões antigas de ficheiros, imagens de produtos ainda não publicados. Não é preciso adivinhar nomes; o servidor entrega-os ordenados e com data. E é o primeiro sítio onde um scanner automático olha, porque encontrar uma listagem aberta costuma levar a algo pior na mesma pasta.

Porque acontece

O servidor web, ao receber um pedido a uma pasta sem um index.html lá dentro, tem duas opções: responder 403 ou gerar uma lista. O Apache e alguns painéis de alojamento partilhado vêm com a lista ativada; o nginx tem-na desligada a menos que alguém a tenha ligado com autoindex on. Em aplicações Express, um serve-index esquecido ou um express.static com opções de listagem fazem o mesmo.

Como corrigir

  • nginx: procura autoindex on na configuração e muda para off (ou remove-o; desligado é o valor por defeito).
  • Apache: no VirtualHost ou num .htaccess da raiz, Options -Indexes.
  • Express: tira qualquer uso de serve-index e confirma que o express.static só aponta para a pasta de build.
  • Alojamento partilhado: o painel costuma ter uma opção "Index Manager" ou "Directory browsing"; põe-na em "No indexing" para o domínio.
  • Vercel, Netlify e semelhantes não geram listagens; se vês o achado aí, a pasta pertence a outro servidor que responde sob o teu domínio.

Depois, revê o que havia nas pastas listadas: tudo o que lá estava era público mesmo que já não se veja a lista. Se havia cópias de segurança ou dados de utilizadores, dá-os por descarregados e age em conformidade. E move o privado para fora do diretório que o servidor serve; o check de ficheiros sensíveis e o de cópias de segurança expostas cobrem os casos mais graves.

Confirma que está corrigido

for d in uploads images assets files backup static media; do
  printf "%-10s " "$d"; curl -s "https://oteudominio.com/$d/" | grep -c "Index of"
done

Todos devem devolver 0. Testa também qualquer outra pasta que saibas que existe no teu servidor, como /wp-content/uploads/ ou /docs/.

Perguntas frequentes

A minha pasta de imagens é pública de qualquer forma. Que importa que seja listada?

A diferença está entre alguém poder ver uma imagem cujo URL conhece e poder ver todas, incluindo as que carregaste para uma campanha que ainda não saiu ou as de um cliente concreto. A listagem também revela nomes de ficheiros que às vezes incluem dados pessoais.

Porque só testa sete pastas?

São as que concentram a maioria das listagens abertas em sites reais. Se o teu servidor tem a listagem ativada, o normal é que esteja ativada para todas, por isso a correção na configuração fecha-a em todo o lado.

Uma listagem numa pasta vazia é um problema?

Menor, mas indica que a listagem está ativada no servidor. Desliga-a na mesma: a pasta não vai estar vazia para sempre.

Verifica-o no teu site

Analisa o teu site grátis e vê se esta e outras 44 verificações passam, com um fix prompt por cada problema.

Analisar o meu site grátis

Verificações relacionadas