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 onna configuração e muda paraoff(ou remove-o; desligado é o valor por defeito). - Apache: no VirtualHost ou num
.htaccessda raiz,Options -Indexes. - Express: tira qualquer uso de
serve-indexe confirma que oexpress.staticsó 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.