📩 Fique por dentro das novidades com a nossa newsletter

Security.txt no WordPress: O arquivo em 5 passos

Relacionados

Relatório de marketing para a diretoria em 5 passos

LTV e payback: Os 3 números que definem o marketing

Kpis de marketing: Os 7 indicadores para acompanhar no WordPress

Conheça a loja da FULL Services

Plugins premium, suporte de verdade e tudo o que seu site WordPress precisa em um só lugar.

Publicar o arquivo de divulgação de falhas chamado security.txt diz a pesquisadores como reportar uma vulnerabilidade no seu site. Segundo o RFC 9116 (2022), ele fica em /.well-known/security.txt e é servido como text/plain. No WordPress, esse caminho exige cuidado com rewrite rules. Publique-o em minutos.

O security.txt é um arquivo de texto simples que informa a quem encontra uma vulnerabilidade no seu site para onde mandar o aviso. Ele não bloqueia nenhum ataque: a função dele é encurtar o tempo entre um pesquisador descobrir a falha e você ficar sabendo. No WordPress, publicar o security.txt tem uma pegadinha que a maioria dos tutoriais ignora, porque o próprio CMS intercepta o caminho /.well-known/ via rewrite rules. Quem cuida de segurança a sério trata esse arquivo como parte dos conteúdos de segurança WordPress da FULL, junto com firewall e hardening. Este guia mostra os 5 passos para fazer certo.


Primeiros passos: O que é o security.txt e por que ele importa

O security.txt virou padrão oficial em com o RFC 9116, depois de 5 anos como proposta. Ele resolve um problema concreto: quando alguém de fora acha uma falha no seu site, essa pessoa não sabe para qual e-mail escrever, desiste ou publica a falha sem aviso.

O arquivo padroniza esse contato num lugar previsível, lido por humanos e por ferramentas como WPScan e OWASP. A lógica é a mesma do robots.txt, mas voltada à divulgação responsável de vulnerabilidades: o leitor encontra o arquivo num caminho fixo, lê os campos em texto puro e age. Para um site que já investe em cabeçalhos de segurança HTTP, o security.txt fecha o ciclo de comunicação. A gente vê no suporte da FULL que sites com canal de contato claro recebem o aviso antes de a falha virar incidente público, e não depois.

Onde o arquivo security.txt deve ficar e quais campos usar

Segundo o RFC 9116, o security.txt deve ficar em https://seudominio.com/.well-known/security.txt, servido como text/plain e por HTTPS. Dois campos são obrigatórios: Contact (e-mail, formulário ou URL para reporte) e Expires (a data de validade, no formato ISO 8601). Sem esses dois, o arquivo é inválido para os validadores.

Os campos opcionais agregam contexto, mas o que faz o security.txt funcionar de fato são Contact e Expires bem preenchidos. Use sempre uma data de Expires futura e renove antes do vencimento, porque ferramentas tratam um arquivo vencido como abandonado.

Campos do security.txt segundo o RFC 9116
Campo Obrigatório Para que serve
Contact Sim E-mail, formulário ou URL para reportar a falha.
Expires Sim Data de validade ISO 8601 do arquivo.
Encryption Não Link para a chave PGP de criptografia do reporte.
Policy Não URL da política de divulgação responsável.
Acknowledgments Não Página que credita quem já reportou falhas.
Canonical Não URL canônica do próprio security.txt.

Passo a passo: Como publicar o security.txt no WordPress

Publicar o security.txt no WordPress leva cerca de 10 minutos e tem dois caminhos: arquivo físico no servidor ou geração via plugin. Em testes na base FULL, o caminho físico tende a ser mais confiável porque não depende do template do tema, que é justamente o que costuma quebrar o Content-Type. Siga os cinco passos abaixo na ordem.

Passo 1: Escreva o conteúdo do arquivo

Crie um arquivo de texto puro com os campos mínimos. Um exemplo válido tem este formato:


Contact: mailto:[email protected]
Expires: 2027-06-10T00:00:00.000Z
Policy: https://seudominio.com/politica-de-seguranca
Preferred-Languages: pt, en

Use um e-mail real e monitorado no campo Contact. A data de Expires deve ser futura, em geral um ano à frente.

Passo 2: Crie a pasta .well-known no servidor

Acesse o servidor por SFTP ou pelo gerenciador de arquivos da hospedagem e crie a pasta .well-known na raiz pública do site, no mesmo nível do wp-config.php e do index.php. Dentro dela, salve o arquivo como security.txt. O nome da pasta começa com ponto, então habilite a exibição de arquivos ocultos no seu cliente FTP.

Passo 3: Libere o caminho no .htaccess do WordPress

Em servidores Apache, adicione uma regra que impede o WordPress de capturar o caminho /.well-known/ antes que o arquivo seja servido. No topo do .htaccess, antes do bloco do WordPress, inclua uma exceção que entrega o arquivo físico direto. Sem isso, as rewrite rules do permalink interceptam a URL e devolvem 404 no caminho canônico.

Passo 4: Confirme o content-type text/plain

Abra https://seudominio.com/.well-known/security.txt no navegador e verifique o cabeçalho de resposta. O Content-Type precisa ser text/plain, não text/HTML. Se vier como HTML, o arquivo passou pelo tema e os validadores vão rejeitá-lo. Force o tipo correto com uma regra de cabeçalho no servidor.

Passo 5: Valide o arquivo num leitor externo

Use um validador de security.txt externo para confirmar que os campos obrigatórios estão presentes e a data de Expires é futura. Documente o arquivo no seu fluxo de auditoria de segurança do WordPress para renová-lo antes do vencimento.

Os erros mais comuns ao configurar o security.txt

Boa parte dos chamados sobre security.txt no suporte da FULL não são sobre criar o arquivo, e sim sobre o WordPress devolver o conteúdo errado. O erro clássico é o arquivo ser servido como text/HTML porque passou pelo template do tema: o validador descarta tudo por não ser text/plain, e a denúncia nunca chega.

O segundo erro mais frequente é a colisão de rewrite rules. Arquivo colocado na raiz pública mais um permalink que captura /.well-known/ resulta em WordPress devolvendo 404 no caminho exigido pelo RFC 9116, mesmo com o arquivo existindo fisicamente. O terceiro é o campo Expires com data passada: ferramentas de varredura tratam o security.txt como abandonado e ignoram o contato. Na maioria dos cenários testados, resolver o Content-Type e a regra do .htaccess já deixa o arquivo válido.

Por que o security.txt encurta a resposta a cves reais

O arquivo security.txt não corrige falha nenhuma, mas encurta o tempo de resposta a CVEs reais nos plugins do site. Segundo o perfil público do WPVulnerability, o Contact Form 7 já acumulou 12 CVEs ao longo dos anos, com destaque para o CVE-2020-35489, de CVSS 10.0.

Essa falha permitia upload irrestrito de arquivos e foi corrigida na versão 5.3.2. Todas já estão corrigidas, sinal de manutenção ativa, e não de risco atual. O All in One Security mostra o outro lado: registrou o CVE-2026-8438, CVSS 7.2, em versões abaixo da 5.4.8, com patch disponível. Quando um pesquisador acha algo novo no seu site, o security.txt diz a ele para onde escrever. A FULL é a única empresa brasileira CNA (CVE Numbering Authority) sob a CISA desde , autorizada a atribuir IDs CVE oficiais, então quem documenta vulnerabilidade aqui literalmente cataloga CVE.

O cenário de ameaça que justifica o canal de contato

A maior parte dos ataques contra sites hoje é automatizada, o que torna o canal de aviso humano ainda mais valioso. Segundo o Cloudflare Radar, nos dados de no Brasil, os ataques de camada de aplicação mitigados se dividem em 82,4% por DDoS e 16,4% por firewall de aplicação (WAF).

Esse volume justifica manter o WAF ativo e, em paralelo, ter um canal claro para o que escapa do bloqueio automático. A gente vê no suporte da FULL que a defesa funciona em camadas: o WAF barra o tráfego malicioso em execução, o hardening reduz a superfície e o security.txt encurta o aviso quando alguém de fora acha a falha primeiro. Para ver como o firewall encaixa nesse fluxo, o tutorial do All in One Security detalha o WAF embarcado, que cobre o que o security.txt não cobre. Pesquisadores também leem o robots.txt no mesmo contexto, como mostra nosso guia sobre crawlers de IA no robots.txt.

Acelere a segurança do site com o bundle da FULL

Configurar o security.txt é só uma camada; manter firewall, 2FA e plugins atualizados em todos os seus sites é o que sustenta a segurança no dia a dia. No plano PRO da FULL, você ativa o All in One Security e os outros 16 plugins premium em quantos sites quiser por R$849 por mês.

Quem gerencia 10 sites paga o equivalente a R$85 por site, com o firewall, a varredura e o hardening centralizados num só painel. Ative tudo em FULL.services/planos e pare de configurar segurança site por site na mão.

Perguntas frequentes sobre o security.txt

É possível publicar o security.txt no WordPress sem instalar plugin?

Sim. Você cria a pasta .well-known na raiz pública do site via SFTP e salva o arquivo security.txt dentro dela, sem nenhum plugin. O único cuidado extra é liberar o caminho /.well-known/ no .htaccess para o WordPress não devolver 404. Esse método físico tende a ser mais confiável que o plugin, porque não depende do template do tema, que é o que costuma quebrar o Content-Type text/plain exigido pelo RFC 9116.

Por que o WordPress devolve 404 no caminho /.well-known/security.txt?

Porque as rewrite rules do permalink interceptam o caminho antes de o servidor entregar o arquivo físico. O WordPress trata quase toda URL como um post ou página, e /.well-known/security.txt não existe como conteúdo do site. A correção é adicionar uma exceção no .htaccess, antes do bloco do WordPress, que entrega o arquivo direto. Sem essa regra, o arquivo existe no disco mas o caminho canônico do RFC 9116 retorna 404.

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

O robots.txt instrui crawlers sobre o que rastrear; o security.txt instrui pesquisadores sobre como reportar uma vulnerabilidade. São arquivos de texto puro em caminhos fixos, mas com públicos opostos: um fala com máquinas de indexação, o outro com pessoas que encontram falhas. O security.txt fica em /.well-known/security.txt, enquanto o robots.txt fica na raiz. Nenhum dos dois protege o site sozinho; ambos padronizam comunicação.

Quanto tempo leva para configurar o security.txt num site WordPress?

Cerca de 10 minutos pelo método físico: criar a pasta, salvar o arquivo, ajustar o .htaccess e validar. O campo Expires deve ter data futura, em geral um ano à frente, com renovação agendada. O que costuma estender esse tempo é o ajuste do Content-Type para text/plain, que pode exigir uma regra extra de cabeçalho no servidor quando o tema captura a requisição.

O que acontece se o campo Expires do security.txt vencer?

Ferramentas de varredura como as da OWASP e validadores externos passam a tratar o arquivo como abandonado e ignoram o contato informado. Na prática, o canal de aviso deixa de funcionar mesmo com o arquivo no ar. Por isso o RFC 9116 torna o campo Expires obrigatório: ele força a manutenção periódica. Defina uma data um ano à frente e inclua a renovação na sua rotina de auditoria de segurança.


Próximos passos para fechar o canal de segurança

Depois de publicar o security.txt, o trabalho é de manutenção: renove o campo Expires antes do vencimento e revise o arquivo a cada auditoria. O security.txt é barato de manter e paga caro no dia em que um pesquisador encontra uma falha antes de um invasor. Combine-o com firewall, 2FA e atualização disciplinada de plugins para cobrir as camadas que o arquivo de contato não alcança. Para continuar aprendendo, o FULL Academy reúne os tutoriais e guias de segurança WordPress num só lugar.

Compartilhe este conteúdo

Equipe Full Services

A FULL. é especialista em WordPress e oferece plugins premium com licenças originais, suporte técnico e instalação facilitada. Já ajudou mais de 25 mil clientes a impulsionar seus sites com performance, segurança e praticidade.

Relatório de marketing para a diretoria em 5 passos

Um relatório de marketing para a diretoria não é o

LTV e payback: Os 3 números que definem o marketing

LTV e payback respondem à pergunta que decide o orçamento

Kpis de marketing: Os 7 indicadores para acompanhar no WordPress

KPIs de marketing são os indicadores-chave de desempenho que conectam
Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.