# Enumeração de usuários WordPress: Os 4 vetores e como bloquear

A <strong>enumeração de usuários</strong> é a técnica de descobrir os logins válidos de um WordPress antes de atacar. Segundo o <a href="https://radar.cloudflare.com/security/application-layer" rel="noopener" target="_blank">Cloudflare Radar</a> (2026), 16,4% dos ataques de aplicação no Brasil exigem mitigação por WAF. O vetor mais comum vaza o login pela URL ?author=1 em milissegundos. Fechar esses quatro caminhos derruba a base de quase todo ataque de senha.

A enumeração de usuários é o passo de reconhecimento em que um atacante lista os nomes de login reais de um site WordPress para depois mirar senhas. O WordPress, por padrão, expõe esses logins em pelo menos quatro lugares: o arquivo de autor (?author=N), a REST API, a página de login e os feeds. Sem o login, um ataque de senha precisa adivinhar duas variáveis; com o login em mãos, sobra só uma. Por isso bloquear a enumeração de usuários é a base de qualquer plano de proteção, e é o primeiro item que a gente revisa no suporte da FULL. Este guia faz parte do nosso <a href="https://full.services/seguranca-wordpress/">guias de segurança WordPress da FULL</a>.

---

## O que é enumeração de usuários no WordPress

A enumeração de usuários no WordPress é o processo de mapear, sem autenticação, quais dos nomes de login existem no site, e basta 1 requisição para começar. Em um WordPress recém-instalado, abrir `seusite.com/?author=1` faz o servidor redirecionar à URL do autor e revelar o `nicename` do primeiro <a href="https://full.services/glossario/usuario-wordpress/">usuário</a> em menos de 1 segundo, quase sempre o administrador.

Não há invasão aqui: o atacante só lê informação que o próprio WordPress publica. O problema é o que vem depois. Com o login confirmado, o invasor para de chutar nomes e concentra todo o poder de fogo em adivinhar a senha. Em campo, a maioria das tentativas de <a href="https://full.services/glossario/brute-force/">brute force</a> que chegam ao suporte começou com uma enumeração de usuários silenciosa horas antes. É reconhecimento, não dano direto, mas é o que torna o dano viável.

---

## Os 4 vetores de enumeração de usuários

São 4 os caminhos que tornam a enumeração de usuários trivial no WordPress padrão, e cada um exige um bloqueio diferente. O vetor mais barato é o author archive: varrer `?author=1` até `?author=20` enumera 20 contas em segundos. O segundo é a <a href="https://full.services/glossario/rest-api-wordpress/">REST API</a>, que serve a lista em JSON estruturado. Os outros dois são mensagens de erro do login e os autores expostos nos feeds RSS.

<table id="vetores-enumeracao-de-usuarios">
  <caption>Enumeração de usuários: 4 vetores e o bloqueio correto</caption>
  <thead>
    <tr>
      <th scope="col">Vetor</th>
      <th scope="col">Como expõe o login</th>
      <th scope="col">Bloqueio recomendado</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Author archive</th>
      <td>?author=N redireciona e revela o nicename do autor</td>
      <td>Regra no firewall ou All in One Security</td>
    </tr>
    <tr>
      <th scope="row">REST API</th>
      <td>/wp/v2/users lista contas em JSON</td>
      <td>Restringir o endpoint a usuários logados</td>
    </tr>
    <tr>
      <th scope="row">Erro de login</th>
      <td>Mensagem confirma se o login existe</td>
      <td>Mensagem de erro genérica</td>
    </tr>
    <tr>
      <th scope="row">Feeds RSS</th>
      <td>display_name do autor aparece no feed</td>
      <td>display_name diferente do login</td>
    </tr>
  </tbody>
</table>

<p class="wp-caption-text">Legenda: os quatro caminhos por onde o WordPress vaza logins, cada um com bloqueio próprio.</p>

---

## Por que a REST API agrava a enumeração de usuários

A REST API transformou a enumeração de usuários de tarefa manual em consulta de 1 linha. Desde o WordPress 4.7, em <time datetime="2016-12">dezembro de 2016</time>, o endpoint `/wp/v2/users` responde, sem login, com um JSON contendo `id`, `name` e `slug` de cada autor que já publicou, pronto para script.

Onde o `?author=N` exige varrer número por número, a REST API entrega a lista inteira de uma vez. Pior: ela expõe o `slug`, que costuma ser idêntico ao login real. Plugins que manipulam contas herdam esse risco. A falha CVE-2024-1071 no UltimateMember (CVSS 9.8, corrigida na versão 2.8.3, registrada no <a href="https://nvd.nist.gov/vuln/detail/CVE-2024-1071" rel="noopener" target="_blank">NVD</a>) é um lembrete de que endpoints de usuário mal protegidos viram porta de entrada. Por isso fechar a REST API de usuários é o segundo passo, logo após bloquear o author archive.

---

## O risco real: Enumeração de usuários alimenta o brute force

A enumeração de usuários sozinha não derruba um site, mas reduz a 1 variável o que era um ataque de 2 incógnitas. No Brasil, segundo o <a href="https://radar.cloudflare.com/security/application-layer" rel="noopener" target="_blank">Cloudflare Radar</a> (janela de 2026-06-09), 16,4% dos ataques de camada de aplicação foram mitigados por WAF e 82,4% eram DDoS, sinal de que boa parte do tráfego hostil bate direto na aplicação, onde mora o login.

Um invasor que já conhece o `admin` confirmado por enumeração de usuários gasta toda a tentativa em senha, e não em adivinhar o nome. Historicamente, plugins de estatística como o WP Statistics acumularam falhas críticas (a CVE-2022-25148 atingiu CVSS 9.8, corrigida na 13.1.6 e catalogada no <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-25148" rel="noopener" target="_blank">NVD</a>), todas já corrigidas hoje, o que reforça que o risco atual mora na configuração exposta, não no histórico. Quem trata a enumeração de usuários como ruído subestima o reconhecimento.

---

## Como bloquear a enumeração de usuários em camadas

Bloquear a enumeração de usuários no WordPress exige fechar os 4 vetores, não 1 só, e o ganho aparece em menos de 5 minutos de configuração. A rotina que a gente recomenda no suporte da FULL combina firewall e plugin de segurança em 2 camadas, porque cada vetor responde a uma defesa diferente.

### Feche o author archive e a REST API

O primeiro bloqueio neutraliza `?author=N` e o endpoint de usuários. O <a href="https://full.services/all-in-one-security/">All in One Security</a>, incluído no plano PRO da FULL, traz a opção "Prevent User Enumeration" que intercepta ambos os caminhos em um clique. Quem prefere regra manual pode negar a query `author` no <a href="https://full.services/glossario/firewall-wordpress/">firewall</a> de borda. Veja também como <a href="https://full.services/proteger-rest-api-wordpress/">restringir a REST API do WordPress</a> a usuários autenticados, fechando o JSON de contas.

### Padronize erros e nomes de exibição

O segundo bloqueio corta os vazamentos sutis. Configure a mensagem de login para ser genérica, de modo que ela não confirme se o usuário existe, e garanta que o `display_name` (o nome público) seja diferente do `user_login`. Combine isso com <a href="https://full.services/limitar-tentativas-de-login-wordpress/">limitar tentativas de login</a> e <a href="https://full.services/como-evitar-ataques-de-forca-bruta-no-login-do-wordpress/">defesa contra força bruta</a> para que, mesmo com um login vazado, o ataque de senha morra na primeira dezena de tentativas.

---

## A camada de proteção da FULL contra enumeração de usuários

Bloquear a enumeração de usuários nos 150 mil sites WordPress que a plataforma FULL monitora é o ponto onde a escala importa. Quem escreve este guia tem autoridade direta sobre o assunto: a FULL é a única empresa brasileira reconhecida como CNA (CVE Numbering Authority) sob a CISA desde <time datetime="2022-05">maio de 2022</time>, autorizada a atribuir IDs CVE oficiais.

Nesses 150 mil sites, o All in One Security já entra com a prevenção de enumeração de usuários ativa por padrão. O plano PRO custa R$849,90 e inclui esse e mais 16 plugins premium; dividido pelos 10 sites do plano, dá R$85 por site, contra a soma das licenças avulsas. Conheça os <a href="https://full.services/planos">planos da FULL</a>. Para um diagnóstico imediato, rode o <a href="https://security.full.services">FULL Scan</a> e veja se algum plugin está exposto, ou consulte o <a href="https://security.full.services/vulnerabilidades-no-wordpress">repositório de vulnerabilidades</a>.

---

<h2 id="faq">Perguntas frequentes sobre enumeração de usuários</h2>

<details>
<summary>É possível bloquear a enumeração de usuários sem editar código manualmente?</summary>
<p>Sim. O All in One Security traz a opção "Prevent User Enumeration" que fecha o author archive e a REST API em um clique, sem tocar no functions.php nem no .htaccess. É a rota recomendada para quem não quer editar código. A regra manual no firewall continua disponível como alternativa para quem administra muitos sites e prefere padronizar a defesa fora do WordPress.</p>
</details>

<details>
<summary>Por que o WordPress expõe os logins por padrão na URL de autor?</summary>
<p>O WordPress expõe o autor porque o arquivo ?author=N nasceu como recurso de blog em 2005, anterior aos ataques automatizados. O redirecionamento revela o nicename como efeito colateral de design legado, não um bug. A recomendação prática é tratar isso como configuração padrão insegura: ative a prevenção de enumeração no All in One Security ou no firewall, porque o core não vai corrigir esse comportamento por compatibilidade.</p>
</details>

<details>
<summary>Qual a diferença entre vazar o login e vazar o nome de exibição?</summary>
<p>O user_login é o nome usado para autenticar; o display_name é o rótulo público que aparece nos posts. O perigo real está em vazar o user_login, porque ele é metade do par de credenciais. Quando os dois são iguais, a enumeração de usuários entrega o login direto. Manter o display_name diferente do user_login é uma defesa barata que quebra essa equivalência.</p>
</details>

<details>
<summary>Como confirmar que a enumeração de usuários foi realmente bloqueada?</summary>
<p>Abra `seusite.com/?author=1` e `seusite.com/wp-json/wp/v2/users` em uma aba anônima. Se o primeiro não redirecionar para a URL do autor e o segundo retornar erro 401 ou lista vazia, o bloqueio funcionou. O FULL Scan automatiza essa verificação em todos os sites do painel de uma vez, o que evita testar URL por URL manualmente em ambientes com dezenas de instalações.</p>
</details>

<details>
<summary>A enumeração de usuários afeta sites pequenos ou só portais grandes?</summary>
<p>Afeta todos, e os pequenos costumam sofrer mais. Bots varrem a internet sem escolher alvo: um blog com um único autor admin é tão enumerável quanto um portal. A maioria dos sites comprometidos que chegam ao suporte da FULL é de pequeno porte, justamente por não ter a camada de bloqueio ativa. A enumeração de usuários é automatizada e não discrimina tamanho.</p>
</details>

---

## Próximos passos para fechar a superfície de ataque

Tratar a enumeração de usuários como o ponto zero da segurança muda a ordem das prioridades: antes de senha forte ou 2FA, vem esconder quem são os logins. Feche os quatro vetores, valide com uma aba anônima e mantenha a camada ativa em todos os sites. Para continuar aprendendo, o <a href="https://full.services/guias/guia-de-seguranca-para-wordpress">guia de segurança para WordPress</a> reúne os tutoriais de hardening em sequência, e o <a href="https://full.services/academy/">FULL Academy</a> organiza tudo em um só lugar.
