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

Verificador de security.txt

Verifica se publicas um ficheiro security.txt (RFC 9116) para que te reportem vulnerabilidades.

O que verifica

Este verificador olha se publicas um ficheiro security.txt seguindo o padrão RFC 9116. Esse ficheiro indica aos investigadores de segurança como te reportar um problema que encontrem. O scanner só confirma se existe e está acessível.

Porque importa

Sem security.txt, quem descobrir uma falha no teu site pode não saber a quem avisar e acabar por divulgá-la publicamente ou ignorá-la. Tê-lo facilita a divulgação responsável e transmite maturidade em segurança. Não é obrigatório, mas é uma boa prática cada vez mais esperada.

Como se corrige

Cria um ficheiro de texto na rota /.well-known/security.txt com pelo menos um campo de contacto, como um email ou um formulário. Acrescenta também a data de expiração que o padrão exige. É um ficheiro estático simples que podes enviar juntamente com o resto do teu site.

Como funciona esta verificação

O Scanaris pede /.well-known/security.txt, que é o caminho padrão da RFC 9116, e se não o encontrar tenta /security.txt na raiz, a localização antiga. Dá o ficheiro por presente apenas se responder 200 e contiver uma linha que comece por Contact:, o único campo obrigatório juntamente com Expires. Assim exclui as aplicações de página única que devolvem o seu HTML para qualquer caminho. Se não o encontrar, abre um achado de severidade informativa: não tira pontos à tua nota, porque não o ter não é uma falha de segurança; é uma boa prática que te falta.

Para que serve

Quando alguém encontra uma falha no teu site (um investigador, um utilizador curioso, outra empresa), precisa de saber a quem avisar. Sem um canal claro, o normal é não avisar, publicar, ou escrever para o formulário de contacto genérico que ninguém lê. O security.txt é um ficheiro de texto num caminho conhecido onde dizes "escreve-me aqui, nesta língua, e esta é a minha política". É lido por pessoas e por ferramentas, e cada vez mais programas de recompensas e seguradoras o dão por adquirido. Também te protege a ti: deixa claro que aceitas reportes responsáveis e em que condições.

Como criá-lo

Um ficheiro mínimo válido:

Contact: mailto:security@teudominio.com
Expires: 2027-10-01T00:00:00.000Z
Preferred-Languages: pt, en
Canonical: https://teudominio.com/.well-known/security.txt
  • Contact (obrigatório): um mailto:, um URL de formulário ou um tel:. Podes pôr vários, por ordem de preferência. A caixa de correio tem de existir e ser lida.
  • Expires (obrigatório): data em formato ISO 8601 a partir da qual o ficheiro deixa de ser válido. A RFC recomenda menos de um ano: põe um lembrete para o renovar.
  • Preferred-Languages, Policy (URL da tua política de divulgação), Encryption (a tua chave PGP) e Acknowledgments (página de agradecimentos) são opcionais.
  • Canonical indica o URL oficial do ficheiro; útil se assinares o ficheiro com PGP para que ninguém possa publicar um falso.

Onde o colocar

  • Nuxt, Next.js, Vite, Astro: cria public/.well-known/security.txt; é servido tal e qual. Confirma que o .gitignore não ignora pastas que começam por ponto.
  • Vercel e Netlify: o mesmo, dentro da pasta pública do projeto.
  • nginx ou Apache: um ficheiro em /.well-known/security.txt do diretório servido; se a tua aplicação captura todas as rotas, adiciona uma exceção para /.well-known/.
  • WordPress: envia o ficheiro por FTP para .well-known/ na raiz, ou usa um plugin que o gere.

Serve-o como text/plain e em HTTPS. Se tens muitos domínios, cada um deve ter o seu ou redirecionar para o canónico.

Confirma que está corrigido

curl -si https://teudominio.com/.well-known/security.txt | grep -iE "^(HTTP|content-type|contact|expires)"

Esperado: 200, tipo text/plain, uma linha Contact: e uma Expires: com data futura.

Perguntas frequentes

Vou receber mais spam ou e-mails de "caçadores de recompensas"?

Algum correio de baixa qualidade vai chegar; é o preço de seres localizável. Um filtro simples e uma política clara (o que conta como reporte válido, se pagas ou não) reduzem o ruído. O que te poupa é a alternativa: saberes pelo Twitter.

Posso pôr só o formulário de contacto geral?

Podes, mas é melhor uma caixa dedicada que alguém reveja. Se o formulário geral é lido pelo marketing, um aviso de vulnerabilidade pode levar semanas a chegar a quem deve.

Porque não penaliza a nota?

Porque mede preparação, não exposição. As restantes verificações de segurança, as que pesam mesmo, estão na checklist de segurança antes de lançar.

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