← Todas as verificações
SegurançaSeveridade típica: Baixo

Scanner de fugas em cabeçalhos

Deteta cabeçalhos como X-Powered-By ou Server que revelam a tua tecnologia e versão a possíveis atacantes.

O que verifica

Este scanner procura cabeçalhos de resposta como X-Powered-By ou Server que revelam que tecnologia e versão o teu site usa. Assinala quando o servidor partilha demasiado sobre o seu interior. É informação que não dá nada ao visitante, mas muito a um atacante.

Porque importa

Conhecer a tua framework e a sua versão exata permite a um atacante procurar vulnerabilidades conhecidas para essa versão precisa. Poupa-lhe trabalho de reconhecimento e torna o teu site num alvo mais fácil. Não é uma falha grave por si só, mas soma risco desnecessário.

Como se corrige

Configura o teu servidor ou framework para remover ou esconder estes cabeçalhos informativos das respostas. Muitas plataformas oferecem uma opção de uma linha para desativar o cabeçalho de tecnologia. É uma mudança rápida que reduz a quantidade de informação exposta.

Como funciona esta verificação

O Scanaris lê os cabeçalhos da resposta principal da tua página e olha para dois em concreto. Se existir X-Powered-By com qualquer valor (por exemplo Express, PHP/8.2.12 ou Next.js), abre um achado de severidade baixa. Se existir Server e o valor contiver um número de versão (algo como nginx/1.18.0 ou Apache/2.4.57), abre outro. Um Server: nginx ou Server: cloudflare sem mais não é marcado: dizer que servidor usas não é problema; dizer exatamente que versão, é.

Porque importa

Nenhum destes cabeçalhos serve para alguma coisa ao utilizador ou ao browser. Existem por hábito. O que fazem é poupar trabalho a quem procura uma vulnerabilidade: com PHP/7.4.3 ou Apache/2.4.49 na resposta, o atacante não tem de adivinhar nada, vai direto à lista de falhas conhecidas dessa versão e testa as que têm exploit público. É um achado de severidade baixa porque, por si só, não abre porta nenhuma; mas é dos mais fáceis de fechar, e os scanners em massa filtram os alvos exatamente por estes cabeçalhos.

Como removê-los conforme a tua stack

  • Express: app.disable('x-powered-by') ao criar a app, ou usa helmet(), que o remove juntamente com outras melhorias.
  • Next.js: envia X-Powered-By: Next.js por defeito. Em next.config.js, poweredByHeader: false.
  • PHP: em php.ini, expose_php = Off. Em alojamento partilhado costuma poder mudar-se no painel ou com um .user.ini.
  • ASP.NET: em web.config, dentro de customHeaders, <remove name="X-Powered-By" />, e no IIS desativa também o cabeçalho X-AspNet-Version com enableVersionHeader="false".
  • nginx: server_tokens off; no bloco http. Continua a dizer "nginx", mas sem versão.
  • Apache: ServerTokens Prod e ServerSignature Off na configuração principal. Com Prod o cabeçalho fica só Apache.
  • Vercel, Netlify, Cloudflare Pages: não enviam versão em Server. Se vires X-Powered-By aí, vem da tua framework (Next.js ou Express), não da plataforma.

Se tens um proxy ou CDN à frente (Cloudflare, um balanceador), verifica a resposta pública: às vezes o proxy substitui o cabeçalho Server e o problema desaparece sozinho, mas o X-Powered-By costuma passar intacto.

Confirma que está corrigido

curl -sI https://teudominio.com | grep -iE "^(server|x-powered-by):"

O ideal é que não apareça X-Powered-By e que Server, se aparecer, não leve número. Testa também uma rota da API ou uma página de erro (um URL que não exista): os erros por vezes são gerados noutra camada que volta a adicionar o cabeçalho.

Perguntas frequentes

Esconder a versão não corrige a vulnerabilidade. Para que serve?

Para não estares na primeira página de resultados de quem procura vítimas. Tens razão em que a solução de fundo é atualizar: esconder a versão é o complemento, não o substituto. As duas coisas juntas custam cinco minutos.

O meu alojamento não me deixa mexer na configuração do servidor.

Nesse caso, elimina pelo menos o X-Powered-By a partir do teu código ou do teu .htaccess (Header unset X-Powered-By) e pede ao alojamento que esconda a versão. Os outros cabeçalhos de segurança, os que deves mesmo ter, são revistos pela verificação de cabeçalhos de segurança.

Porque é que "Server: cloudflare" não é marcado?

Porque não revela nada aproveitável: nem versão nem software concreto por trás. O que se procura aqui é informação que encurte o caminho até um exploit. Que cabeçalhos convém ter e quais sobram, conta-o cabeçalhos HTTP explicados para humanos.

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