Gerador de security.txt

Gerador de security.txt

Gera saídas conforme a RFC 9116, prontas para implantação em /.well-known/security.txt.

Informações de Divulgação

Declare a URL Canonical do seu security.txt para evitar falsificação em outros caminhos

Saída Gerada

Gere online arquivos security.txt em conformidade com o padrão RFC 9116, fornecendo aos pesquisadores de segurança um canal formal de relato de vulnerabilidades. Visualização em tempo real, cópia com um clique, implante diretamente em /.well-known/security.txt para entrar em vigor.

Sugestões Relacionadas

Sobre o security.txt: O Guia Completo para Padrões de Divulgação de Segurança de Sites

security.txt é uma melhor prática de segurança web formalmente padronizada pela IETF (Internet Engineering Task Force) no RFC 9116, projetada para fornecer aos sites uma maneira unificada e padrão de publicar informações de contato de segurança. Simplificando, é um arquivo de texto colocado em um caminho fixo em um site, dizendo aos pesquisadores de segurança (hackers white hat): "Se você encontrar vulnerabilidades de segurança no meu site, aqui está como nos contatar, aqui está nossa chave pública de criptografia, aqui está nossa política de divulgação e agradecemos seus relatórios."

Antes do padrão security.txt existir, as informações de contato de segurança dos sites eram desorganizadas. Alguns sites não tinham nenhuma informação de contato de segurança, alguns a enterravam em alguma página obscura, alguns só listavam um e-mail info@ não atendido e alguns exigiam busca meticulosa no LinkedIn para encontrar a equipe de segurança. Isso causou um problema sério: quando pesquisadores de segurança de boa-fé descobriam vulnerabilidades, muitas vezes não conseguiam encontrar o canal correto para relatá-las. O resultado foi — muitas vulnerabilidades foram silenciosamente arquivadas, deixadas sem correção, até serem descobertas e exploradas por hackers maliciosos. O security.txt nasceu para resolver esse problema da "última milha".

O conceito de security.txt foi proposto pela primeira vez pelos pesquisadores de segurança EdOverflow e Yakov Shafranovich em 2017 e rapidamente ganhou amplo apoio da indústria. Em abril de 2022, o security.txt foi formalmente aprovado pela IETF como RFC 9116, tornando-se um padrão de segurança web reconhecido internacionalmente. Hoje, grandes empresas de tecnologia como Google, GitHub, Meta (Facebook), LinkedIn e Cloudflare, bem como agências governamentais incluindo o governo do Reino Unido, a CISA dos EUA (Agência de Segurança Cibernética e Infraestrutura), o governo da França, o governo da Itália, o governo da Holanda e o Centro de Segurança Cibernética da Austrália, implantaram o security.txt em seus sites oficiais e recomendam publicamente que outras organizações o adotem.

O design central do arquivo security.txt é muito simples — é um arquivo de texto simples que consiste em linhas no formato "nome-do-campo: valor", semelhante ao formato de cabeçalho HTTP. O padrão define dois campos obrigatórios: Contact (informações de contato de segurança, que podem ser múltiplas) e Expires (tempo de expiração do arquivo); bem como vários campos opcionais: Encryption (URL da chave pública de criptografia PGP), Acknowledgments (URL da página de agradecimentos), Policy (URL da política de divulgação de vulnerabilidades), Hiring (URL de vagas de segurança), Canonical (URL canônica do arquivo), Preferred-Languages (idiomas de relatório suportados) e CSAF (URL de metadados do provedor Common Security Advisory Framework). Este formato simples torna mais fácil para humanos e máquinas analisarem.

Por que implantar o security.txt é tão importante? Primeiro, ele reduz a barreira para o relato de vulnerabilidades. Pesquisadores de segurança não precisam gastar tempo significativo encontrando informações de contato — eles podem encontrar o canal de relatório correto com um clique. Segundo, demonstra a atitude proativa de uma organização em relação à segurança — um site com security.txt está essencialmente dizendo "Levamos a segurança a sério e agradecemos relatórios responsáveis". Terceiro, reduz o risco de vulnerabilidades serem divulgadas publicamente ou exploradas: com um canal formal, os pesquisadores não escolherão divulgar vulnerabilidades publicamente diretamente no Twitter ou GitHub porque não conseguem contatar ninguém. Quarto, em muitos requisitos regulatórios do setor (por exemplo finanças, saúde, governo), estabelecer um canal de divulgação de vulnerabilidades tornou-se um requisito de conformidade.

Existem vários detalhes importantes a serem observados ao implantar o security.txt. Primeiro, o caminho deve estar correto: o caminho padrão é /.well-known/security.txt, e você também pode colocar uma cópia em /security.txt no diretório raiz como fallback. O diretório .well-known aqui é um diretório padrão de "recursos conhecidos" definido pelo RFC 8615, onde outros arquivos padrão como robots.txt também são colocados em locais relacionados. Segundo, deve ser servido por HTTPS — HTTP em texto simples é considerado inseguro. Terceiro, Content-Type deve ser text/plain, não text/html ou outros tipos. Quarto, não faça redirecionamentos entre domínios para security.txt — se https://example.com/.well-known/security.txt redirecionar para https://outro-dominio.com/security.txt, pesquisadores e ferramentas automatizadas considerarão isso suspeito. Quinto, lembre-se de definir o campo Expires e atualizá-lo regularmente; um security.txt expirado será considerado como tendo informações não confiáveis.

O campo Contact é o campo mais importante no security.txt e o único campo verdadeiramente essencial (Expires também é obrigatório, mas é apenas um carimbo de data/hora). Contact suporta três formatos URI: mailto: para endereços de e-mail, https:// para links da web (por exemplo páginas de formulário de relatório de segurança) e tel: para números de telefone. É altamente recomendado fornecer pelo menos um e-mail mailto e um link de formulário https — formulários evitam spam de bots, enquanto e-mail é mais conveniente para pesquisadores enviarem relatórios criptografados diretamente. Vários contatos podem ser listados em várias linhas, por exemplo fornecendo simultaneamente o e-mail da equipe de segurança, o e-mail do líder de segurança e links de plataformas de vulnerabilidades de terceiros.

Embora o campo Encryption seja opcional, é muito importante na prática. Quando pesquisadores de segurança descobrem uma vulnerabilidade crítica (como vazamento de dados de usuário ou execução remota de código), eles absolutamente não querem enviar detalhes de vulnerabilidades em e-mail de texto simples — porque o e-mail passa por vários servidores durante a transmissão, qualquer salto pode ser espionado. A criptografia de chave pública PGP (Pretty Good Privacy) é o padrão da indústria para comunicação segura. Você só precisa gerar um par de chaves PGP, colocar a chave pública em seu site (por exemplo em /.well-known/pgp-key.txt) e inserir essa URL no campo Encryption. Pesquisadores criptografam o conteúdo do relatório com sua chave pública, e apenas aqueles que possuem a chave privada correspondente podem descriptografar e ler.

O campo Policy vincula à sua página de Política de Divulgação de Vulnerabilidades (Vulnerability Disclosure Policy, VDP), que é fundamental para construir a confiança do pesquisador. Uma boa VDP deve declarar claramente: escopo de teste (quais sistemas estão no escopo de teste e quais estão fora do escopo), métodos de teste permitidos (por exemplo teste de SQL injection/XSS permitido, mas DDoS/engenharia social/acesso a dados de usuários reais proibidos), tempos de resposta comprometidos (por exemplo "Confirmaremos o recebimento de relatórios em até 3 dias úteis"), se recompensas são oferecidas e compromissos de porto seguro legal (declarando explicitamente não processar pesquisadores de boa-fé que sigam as regras). Existem muitos modelos VDP disponíveis internacionalmente para referência, e a CISA dos EUA também fornece um modelo VDP de código aberto.

Além do próprio contato de segurança, o security.txt tem vários campos "surpresa". O campo Acknowledgments constrói um Hall da Fama de Segurança — agradecendo publicamente aos pesquisadores que ajudam você a encontrar vulnerabilidades, o que reconhece seu trabalho e também serve como construção de comunidade. O campo Hiring é um design muito inteligente: pessoas que conseguem encontrar vulnerabilidades em seu site são inerentemente excelentes talentos de segurança, e colocar um link de recrutamento no security.txt é o canal mais preciso para recrutar talentos de segurança. Muitas empresas contrataram excelentes engenheiros de segurança através do security.txt. O campo Canonical é uma consideração de segurança — impedindo que atacantes forjem seu security.txt em outros domínios.

Em relação à preocupação comum sobre spam, na prática a maioria das organizações que implantaram o security.txt relata aumentos insignificantes de spam. Isso ocorre porque: primeiro, spammers normalmente não obtêm endereços de e-mail rastreando security.txt; segundo, links de formulário https:// podem ser usados em vez de colocar e-mails mailto diretamente, e adicionar CAPTCHA aos formulários pode bloquear bots completamente; terceiro, e-mails de segurança dedicados (por exemplo security@) geralmente têm filtragem de spam forte configurada. Em contraste, o custo de perder relatórios críticos de vulnerabilidades devido à falta de um canal de contato de segurança supera em muito o aumento potencial de pequenas quantidades de spam.

Este gerador é construído em estrita conformidade com o padrão RFC 9116, e todos os formatos de saída são normalizados: o campo Contact reconhece automaticamente prefixos, o campo Expires usa formato de tempo UTC ISO 8601 padrão e Preferred-Languages é definido automaticamente com base no idioma que você está usando. O conteúdo gerado pode ser copiado e implantado diretamente no caminho /.well-known/security.txt sem quaisquer modificações. Além disso, toda a configuração é feita localmente no seu navegador e nunca é enviada para nenhum servidor — suas informações de contato de segurança sempre permanecem no seu dispositivo. Implantar o security.txt leva apenas 5 minutos, mas o canal de comunicação de segurança que ele estabelece pode ajudá-lo a evitar um incidente de segurança sério no futuro.

Casos de uso

  • Estabelecer canais formais de relato de vulnerabilidades para sites corporativos, plataformas SaaS e sites de e-commerce, configurando endereços de e-mail Contact e páginas de política de segurança Policy
  • Publicar URLs de chaves públicas de criptografia PGP para que pesquisadores de segurança possam criptografar envios de detalhes sensíveis de vulnerabilidades, evitando a interceptação de informações de vulnerabilidades em trânsito em texto simples
  • Definir URLs da página do Hall da Fama de Segurança Acknowledgments para agradecer publicamente aos pesquisadores que relatam vulnerabilidades, construindo confiança na comunidade de segurança
  • Configurar links de vagas de segurança Hiring para apresentar proativamente informações de recrutamento da equipe a pesquisadores de segurança e hackers white hat, atraindo talentos de segurança
  • Definir carimbos de data/hora de expiração Expires para lembrar as equipes de revisar e atualizar regularmente as informações de contato de segurança, evitando contatos inacessíveis devido a informações desatualizadas que deixam vulnerabilidades não relatadas
  • Configurar campos Canonical para declarar a URL canônica do seu arquivo security.txt, impedindo que atacantes forjem conteúdo malicioso de security.txt que engane pesquisadores
  • Atender aos requisitos da Política de Divulgação de Vulnerabilidades (VDP) para sites de alta conformidade nos setores governamental, financeiro e de saúde, alinhando-se às melhores práticas regulatórias do setor
  • Configurar rapidamente pontos de entrada de contato de segurança para projetos open source, blogs pessoais e serviços de API, demonstrando uma atitude séria em relação a questões de segurança

Como Usar

  1. Preencha endereços de e-mail ou URLs de contato de segurança na seção Contact (um por linha, múltiplas linhas suportadas; e-mails exigem o prefixo mailto:, URLs da web exigem o prefixo https://)
  2. Configure campos opcionais conforme necessário: Encryption (URL da chave pública PGP), Acknowledgments (página do Hall da Fama), Policy (página da política de divulgação de vulnerabilidades), Hiring (página de vagas de segurança), Canonical (URL canônica do arquivo), etc.
  3. Defina o tempo de expiração Expires (tempo UTC em formato ISO 8601, por exemplo 2027-12-31T23:59:59Z; configuração recomendada é 6 a 12 meses no futuro)
  4. Visualize o conteúdo gerado em tempo real à direita; após confirmar que o formato está correto, clique no botão copiar
  5. Crie uma pasta .well-known no diretório raiz do seu site e salve o conteúdo como security.txt dentro dela
  6. Configure seu servidor web (Nginx/Apache/Caddy etc.) para garantir acesso via https://seu-dominio/.well-known/security.txt com Content-Type definido como text/plain

Recursos

  • Estritamente em conformidade com o padrão RFC 9116 mais recente: o formato de saída é totalmente compatível e pronto para implantação em ambiente de produção
  • Suporte a múltiplos contatos Contact: uma entrada por linha; e-mail (mailto:), URL da web (https://) e telefone (tel:) podem ser declarados independentemente
  • Cobertura completa de campos: campos obrigatórios Contact e Expires mais todos os campos opcionais, incluindo Encryption, Acknowledgments, Policy, Hiring, Canonical e Preferred-Languages
  • Geração de visualização em tempo real: o conteúdo do security.txt é atualizado instantaneamente conforme você modifica qualquer configuração — WYSIWYG, sem necessidade de clicar em botão gerar
  • Declaração automática de idioma: adiciona automaticamente o campo Preferred-Languages com base no idioma atual da página para facilitar relatórios de pesquisadores de segurança internacionais
  • Formato de tempo ISO 8601: o campo Expires usa formato de tempo UTC padrão em conformidade com as especificações RFC mais recentes
  • Validação de formato de campo: verifica automaticamente prefixos de Contact (mailto:/https:/tel:) e formato de tempo Expires para evitar saída inválida
  • Cópia com um clique: clique para copiar o conteúdo completo para a área de transferência — cole e implante imediatamente
  • Modelos de exemplo integrados: pré-preenchidos com formato de exemplo para que você possa substituir rapidamente por suas próprias informações em vez de começar do zero
  • Execução local puramente frontend: a configuração é processada localmente no seu navegador e nunca é enviada para nenhum servidor
  • Orientações de caminho de implantação: após a geração, mostra o caminho de implantação padrão /.well-known/security.txt e os principais pontos de configuração do servidor web
  • Sem marca d'água: os arquivos gerados não contêm marcas d'água nem restrições, adequados para uso direto em sites comerciais

Perguntas frequentes

O que é um arquivo security.txt? Por que meu site precisa de um?

security.txt é um padrão de segurança web definido pela IETF no RFC 9116, projetado para fornecer aos sites uma maneira padronizada de publicar informações de contato de segurança. Quando pesquisadores de segurança (hackers white hat) descobrem vulnerabilidades de segurança em seu site, eles precisam saber quem contatar, como criptografar seus relatórios e qual política de divulgação seguir. Sem o security.txt, os pesquisadores podem não encontrar a pessoa certa, e as vulnerabilidades podem ser divulgadas publicamente ou até exploradas maliciosamente. Google, GitHub, Facebook/Meta, o governo do Reino Unido, a CISA dos EUA e os governos da França, Itália, Holanda e Austrália adotaram esse padrão.

Onde o security.txt deve ser colocado em um site?

De acordo com os padrões RFC 9116, o security.txt deve ser colocado no caminho /.well-known/security.txt (ou seja, na pasta .well-known na raiz do seu site). Você também pode colocar uma cópia em /security.txt no diretório raiz como fallback. Ele deve estar acessível via HTTPS, e o Content-Type deve ser text/plain. Não o coloque em outros caminhos, pois ferramentas automatizadas de varredura de segurança não o reconhecerão.

Quais formatos de contato o campo Contact suporta? Posso inserir vários contatos?

Três formatos são suportados: endereços de e-mail devem usar o prefixo mailto: (por exemplo mailto:security@example.com), URLs da web devem usar o prefixo https:// (por exemplo https://example.com/security-report) e números de telefone devem usar o prefixo tel: (por exemplo tel:+1-201-555-0123). Você pode inserir vários contatos, um por linha — pesquisadores de segurança podem escolher o canal mais conveniente para contatá-lo. Recomenda-se fornecer pelo menos um endereço de e-mail e um link para formulário da web.

O campo Expires é obrigatório? Quais são os requisitos de formato?

Expires é um campo obrigatório (Contact também é obrigatório; todos os outros são opcionais). Expires indica o tempo de expiração do conteúdo do security.txt e deve usar o tempo UTC em formato ISO 8601, por exemplo 2027-12-31T23:59:59Z (Z indica o fuso horário UTC). Recomenda-se definir a expiração para 6 a 12 meses após a criação para lembrá-lo de atualizar regularmente as informações de contato de segurança. Após a expiração, ferramentas automatizadas considerarão as informações do arquivo potencialmente inválidas.

Por que o campo Encryption é necessário? Tenho que incluir uma chave pública PGP?

O campo Encryption aponta para a localização da sua chave pública PGP. Pesquisadores de segurança podem usar essa chave pública para criptografar relatórios de vulnerabilidades antes de enviá-los, evitando que detalhes de vulnerabilidades sejam interceptados durante a transmissão de e-mail. Este não é um campo obrigatório, mas é fortemente recomendado — porque informações de vulnerabilidades são altamente sensíveis, e-mails em texto simples podem ser espionados por ISPs, administradores de servidores de e-mail ou atacantes. Você pode colocar sua chave pública PGP em /.well-known/pgp-key.txt e inserir essa URL no campo Encryption.

O que o campo Acknowledgments faz? Por que configurar uma página de agradecimentos?

O campo Acknowledgments aponta para uma página pública de agradecimentos (também chamada de Hall da Fama de Segurança), listando os nomes ou IDs de pesquisadores que já relataram vulnerabilidades de segurança para você. Este é um reconhecimento público do trabalho dos pesquisadores de segurança e uma maneira eficaz de atrair mais pesquisadores white hat para ajudar você a encontrar vulnerabilidades. Muitos pesquisadores de segurança priorizam testar sites com mecanismos públicos de agradecimento, pois isso significa que suas contribuições serão reconhecidas.

Para qual conteúdo o campo Policy deve vincular?

O campo Policy deve vincular à sua página de Política de Divulgação de Vulnerabilidades (Vulnerability Disclosure Policy, VDP). Esta página deve declarar claramente: quais atividades de teste são permitidas (e quais são proibidas, por exemplo sem DDoS, sem acessar dados de usuários), compromissos de tempo de resposta para relatórios de vulnerabilidades, se você oferece recompensas e seus compromissos legais com pesquisas de segurança legítimas (por exemplo, não processar pesquisadores de boa-fé). Uma Policy clara fornece aos pesquisadores de segurança tranquilidade legal, garantindo que eles possam relatar problemas com segurança.

Para que serve o campo Canonical? Preciso preenchê-lo?

O campo Canonical declara a URL canônica do próprio arquivo security.txt. Um site pode ter security.txt acessível em vários domínios ou caminhos (por exemplo example.com e www.example.com); o campo Canonical informa aos pesquisadores qual URL é a versão oficial e confiável. Isso evita que atacantes coloquem um security.txt forjado em algum caminho para enganar pesquisadores a enviar relatórios de vulnerabilidades para o atacante. Recomenda-se preencher a URL oficial do seu domínio, como https://example.com/.well-known/security.txt.

O que significa o campo Preferred-Languages?

Preferred-Languages informa aos pesquisadores de segurança quais idiomas sua equipe de segurança pode manipular para relatórios, expressos como códigos de idioma separados por vírgulas (por exemplo en, pt-BR, es). Este gerador define automaticamente este campo com base no idioma da página que você está usando atualmente. Isso é importante porque a pesquisa de segurança é global — pesquisadores podem estar em qualquer país, e declarar idiomas suportados antecipadamente evita falhas de comunicação devido a barreiras linguísticas.

O campo Hiring também deve ser colocado no security.txt?

Sim, Hiring é um dos campos opcionais definidos no padrão RFC 9116. Este campo aponta para a página de recrutamento da sua equipe de segurança. Os próprios pesquisadores de segurança são excelentes candidatos a talentos de segurança — sua capacidade de encontrar vulnerabilidades em seu site demonstra fortes capacidades de segurança. Colocar um link de recrutamento no security.txt é uma maneira altamente direcionada de recrutar talentos de segurança. Muitas empresas conhecidas (incluindo o Google) incluem links de recrutamento em seus arquivos security.txt.

Publicar um e-mail de contato de segurança resultará em grandes quantidades de spam?

Esta é a preocupação mais comum entre operadores de sites. Existem várias estratégias para reduzir spam: primeiro, em vez de publicar endereços de e-mail diretamente, publique uma URL para um formulário da web de relatório de segurança (prefixo https://), onde você pode adicionar CAPTCHA para filtrar bots; segundo, use um alias de e-mail de segurança dedicado (por exemplo security@) e configure filtragem de spam forte; terceiro, forneça criptografia de chave pública PGP — remetentes de spam automatizados não usam criptografia PGP; quarto, declare claramente em sua Policy que você só aceita relatórios relacionados a vulnerabilidades de segurança. Na prática, a maioria dos sites que implementaram o security.txt relata aumentos insignificantes de spam, mas aumentos significativos nos relatórios de vulnerabilidades.

O security.txt precisa ser assinado digitalmente? Como fazer?

O RFC 9116 recomenda (mas não exige) o uso de assinaturas em texto claro OpenPGP para assinar digitalmente o security.txt, para que os pesquisadores possam verificar que o arquivo foi de fato publicado oficialmente pelo site e não foi adulterado por atacantes. O método é usar GPG para assinar o arquivo em modo clearsign: gpg --clearsign -o security.txt.sig security.txt, depois usar o conteúdo assinado (começando com -----BEGIN PGP SIGNED MESSAGE-----) como o conteúdo final do security.txt. No entanto, esta é uma operação avançada — a maioria dos sites pode funcionar normalmente sem assinatura.

Como devo configurar Nginx/Apache/Caddy para security.txt?

Requisitos principais de configuração: garanta que o caminho /.well-known/security.txt esteja acessível, Content-Type retorne text/plain, HTTPS deve ser usado e não redirecione este caminho (especialmente não redirecione para outros domínios). O Nginx pode usar correspondência exata de localização: location = /.well-known/security.txt { default_type text/plain; alias /caminho/para/security.txt; }; o Apache deve garantir que o .htaccess não bloqueie o acesso ao diretório .well-known; o Caddy pode usar handle_path para especificar diretamente.

Meu site é muito pequeno (blog pessoal/projeto open source) — ainda preciso do security.txt?

É altamente recomendado. Independentemente do tamanho do site, desde que você tenha dados de usuários ou forneça serviços na internet, podem existir vulnerabilidades de segurança. O custo de implantação do security.txt é extremamente baixo — gerar com esta ferramenta leva apenas 2 minutos e requer colocar um arquivo. Grandes empresas como Google e GitHub o usam, e desenvolvedores individuais e projetos open source também podem usá-lo. É uma prática de segurança extremamente econômica: custo quase zero, mas dá aos pesquisadores de boa-fé que encontram vulnerabilidades um canal para informá-lo sobre problemas, em vez de sair silenciosamente ou divulgar publicamente.

Qual é a diferença entre security.txt e robots.txt?

Ambos são arquivos de texto padrão colocados no diretório /.well-known/ (ou diretório raiz), mas seus propósitos são completamente diferentes: robots.txt é para rastreadores de motores de busca, informando quais caminhos não rastrear; security.txt é para pesquisadores de segurança, informando como contatá-lo se encontrarem vulnerabilidades. Um visa motores de busca, o outro visa pesquisadores de segurança — eles se complementam sem conflito e podem ser implantados simultaneamente.

Solução de Problemas

Acessar /.well-known/security.txt retorna erro 404

Existem três causas comuns: primeiro, o arquivo não está colocado na localização correta — confirme que o caminho é o arquivo security.txt dentro da pasta .well-known na raiz do site (observe que .well-known é um diretório oculto começando com ponto); segundo, a configuração do servidor web bloqueia acesso a diretórios começando com ponto (regras .htaccess do Apache ou regras deny do Nginx podem bloquear diretórios dotfile); terceiro, regras de reescrita do Nginx/Apache (como modo history de roteamento frontend) estão encaminhando solicitações para index.html. Solução: verifique o caminho do arquivo e adicione explicitamente uma regra de localização para /.well-known/security.txt na configuração do servidor.

Acessar security.txt redireciona para a página de login ou página inicial

Muitos aplicativos de página única (SPAs) ou sites com autenticação redirecionam todos os caminhos não correspondentes para a página inicial ou página de login. Isso impede que ferramentas automatizadas encontrem o security.txt. Solução: adicione uma exceção para o caminho /.well-known/security.txt na configuração do servidor para que este caminho retorne o conteúdo do arquivo diretamente, ignorando o roteamento SPA ou processamento de middleware de autenticação. Esta é a armadilha mais comum ao implantar security.txt.

Navegador baixa security.txt em vez de exibir conteúdo

Isso ocorre porque o servidor retorna um Content-Type incorreto, possivelmente definido como application/octet-stream ou outro tipo binário em vez de text/plain. Solução: defina explicitamente Content-Type como text/plain; charset=utf-8 para security.txt na configuração do servidor web. O Nginx requer default_type text/plain ou add_header Content-Type text/plain; o Apache geralmente manipula isso automaticamente, mas se ocorrerem problemas, você pode usar a diretiva AddType para forçar a especificação.

Inseri e-mail no campo Contact mas recebo erro de formato

Valores do campo Contact devem incluir prefixos URI: endereços de e-mail devem começar com mailto: (por exemplo mailto:security@example.com, não apenas security@example.com), URLs da web devem começar com https:// (não apenas example.com/security) e números de telefone devem começar com tel:. Isso é explicitamente exigido pelos padrões RFC 9116 — porque o campo Contact suporta múltiplos métodos de contato, a falta de prefixos torna impossível para os analisadores determinar o tipo.

Formato de tempo Expires é mostrado como incorreto

Expires deve usar horário UTC em formato ISO 8601 no formato AAAA-MM-DDTHH:MM:SSZ, com um Z no final indicando o fuso horário UTC (não escreva deslocamentos de fuso horário locais como -03:00). Exemplo correto: 2027-12-31T23:59:59Z. Não use outros formatos como 2027/12/31, 31 de dez de 2027 ou 2027-12-31 23:59:59 — estes não estão em conformidade.

Implantei security.txt mas ferramentas de detecção online ainda dizem que não conseguem encontrar

Verifique os seguintes pontos: primeiro, certifique-se de que o acesso usa HTTPS (acesso HTTP não conta — RFC exige HTTPS); segundo, certifique-se de acesso correto tanto com domínio com www quanto sem www (se seu site existir em ambas as versões de domínio, recomenda-se declarar o domínio principal no campo Canonical e colocar security.txt em ambos os domínios ou configurar redirecionamentos 301 corretos); terceiro, verifique se o cache do CDN foi limpo de conteúdo antigo; quarto, confirme que o servidor não retorna redirecionamentos (301/302) para outras URLs no caminho security.txt — RFC especifica que redirecionamentos podem ser rejeitados por ferramentas.

Glossário

RFC 9116
O documento padrão oficial do security.txt publicado pela IETF, número 9116, lançado em abril de 2022. Define todos os detalhes de especificação para formato de arquivo security.txt, campos, caminhos de implantação, tipos MIME etc. e é a base autoritativa para implementação do security.txt.
Diretório .well-known
Um diretório padrão da Web definido pelo RFC 8615, usado para armazenar arquivos de metadados padronizados para sites (como security.txt, robots.txt, apple-app-site-association etc.), com caminho fixo da pasta .well-known no diretório raiz do site.
VDP (Política de Divulgação de Vulnerabilidades)
Política de Divulgação de Vulnerabilidades, que descreve quais testes de segurança um site permite, como relatar vulnerabilidades, compromissos de tempo de resposta, disposições de porto seguro legal etc. O campo Policy no security.txt deve vincular à página VDP.
Criptografia PGP/GPG
Pretty Good Privacy/GNU Privacy Guard, um padrão de criptografia assimétrica. Pesquisadores de segurança usam a chave pública do site para criptografar relatórios de vulnerabilidades, e apenas o site que possui a chave privada pode descriptografá-los, evitando que detalhes de vulnerabilidades sejam interceptados durante a transmissão.
ISO 8601
Um formato de representação de data e hora desenvolvido pela Organização Internacional para Padronização; o RFC 9116 exige que o campo Expires use este formato em horário UTC (por exemplo 2027-12-31T23:59:59Z, onde Z indica o fuso horário UTC).
Hall da Fama (Agradecimentos de Segurança)
A página de agradecimentos apontada pelo campo Acknowledgments, que registra publicamente os nomes/IDs de pesquisadores que relataram vulnerabilidades de segurança para o site, servindo como reconhecimento público de contribuições de pesquisa de segurança.
Hacker White Hat
Pesquisadores de segurança que descobrem e divulgam responsabilmente vulnerabilidades de segurança para fins de boa-fé, em oposição a hackers maliciosos (black hats) que exploram vulnerabilidades para ataques. O security.txt fornece um canal formal de comunicação para pesquisadores white hat.
URL Canônica
O campo Canonical no security.txt declara a URL oficial do próprio arquivo, impedindo que atacantes coloquem arquivos security.txt forjados em outros caminhos ou domínios para enganar pesquisadores.

Referência Rápida de Campos security.txt RFC 9116

Abaixo estão todos os campos definidos pelo padrão security.txt e seus requisitos:

Nome do CampoObrigatório/OpcionalMúltiplos Permitidos?Formato do ValorDescrição
Contact✅ Obrigatório✅ Múltiplas linhas permitidasURI mailto:/https:/tel:Informações de contato de segurança, suporta formatos de e-mail, URL da web e telefone
Expires✅ Obrigatório❌ Exatamente umHorário UTC ISO 8601Tempo de expiração do conteúdo do arquivo; após expiração, as informações são consideradas potencialmente inválidas
Encryption⬜ Opcional✅ Múltiplas linhas permitidasURI https://URL da localização da chave pública PGP para criptografar relatórios sensíveis de vulnerabilidades
Acknowledgments⬜ Opcional✅ Múltiplas linhas permitidasURI https://URL da página Hall da Fama de Segurança/agradecimentos, agradece publicamente aos relatores de vulnerabilidades
Policy⬜ Opcional✅ Múltiplas linhas permitidasURI https://URL da página Política de Divulgação de Vulnerabilidades (VDP), descreve regras e escopo de relato
Hiring⬜ Opcional✅ Múltiplas linhas permitidasURI https://URL da página de recrutamento da equipe de segurança, recruta talentos de pesquisadores de segurança
Canonical⬜ Opcional✅ Múltiplas linhas permitidasURI https://URL canônica do próprio arquivo security.txt, evita falsificação
Preferred-Languages⬜ Opcional❌ Exatamente umCódigos de idioma (separados por vírgulas)Idiomas suportados pela equipe de segurança, por exemplo en, pt-BR, es
CSAF⬜ Opcional✅ Múltiplas linhas permitidasURI https://URL de metadados do provedor Common Security Advisory Framework

Exemplos de Configuração security.txt para Servidores Web Comuns

Após gerar o conteúdo do security.txt, configure o caminho de acesso correto e Content-Type no seu servidor:

Servidor WebPontos Principais de ConfiguraçãoObservações
Nginxlocation = /.well-known/security.txt { default_type text/plain; alias /var/www/.well-known/security.txt; add_header Cache-Control "public, max-age=3600"; }Use correspondência exata (=), especifique default_type como text/plain para evitar que o Nginx trate arquivos txt como binários
ApacheCertifique-se de que o diretório .well-known não esteja bloqueado por regras Deny no .htaccess; basta colocar o arquivo na pasta .well-known no diretório raiz do siteO Apache retorna text/plain para arquivos .txt por padrão, mas confirme que regras mod_rewrite não reescrevam este caminho
Caddyhandle_path /.well-known/security.txt { file_server { root /var/www } }Caddy usa HTTPS por padrão e manipula corretamente tipos MIME de arquivos txt; configuração mais simples
Cloudflare Pages/Vercel/NetlifyColoque security.txt em public/.well-known/security.txt; após a implantação, o serviço estático permitirá acesso corretoPlataformas de hospedagem estática geralmente manipulam o Content-Type correto automaticamente; confirme que as plataformas não ignorem o diretório .well-known quando ele começar com ponto
CDN/Reverse ProxyCertifique-se de que CDNs ou WAFs não bloqueiem ou armazenem em cache security.txt por muito tempo; configuração Cache-Control recomendada é max-age=3600 (1 hora)Lembre-se de limpar o cache do CDN após atualizar security.txt, caso contrário pesquisadores podem ver versões antigas

Privacy & Security

Todas as operações de configuração neste gerador são executadas inteiramente localmente no seu navegador. Nenhuma das informações que você inserir — e-mails de contato de segurança, URLs de chaves PGP, links de vagas ou quaisquer outros dados — é enviada para nenhum servidor, nem é coletada ou armazenada. Todo o conteúdo inserido é imediatamente limpo quando a página é atualizada ou fechada. O conteúdo do arquivo security.txt gerado existe apenas na sua área de transferência e nos servidores onde você o implantar; o GeekFormat não retém nenhuma cópia.