# Como proteger contra ataques de forca bruta no login do WordPress

Um ataque de forca bruta no WordPress tenta adivinhar usuário e senha enviando milhares de combinacoes ao wp-login.php. A proteção combina limitar tentativas, exigir senha forte com 2FA e bloquear ou esconder a página de login.

## O que é o ataque de forca bruta no login do WordPress?

Um ataque de forca bruta e quando um bot envia automaticamente milhares de combinacoes de usuário e senha para a página de login do WordPress (wp-login.php) ou para o endpoint xmlrpc.php, tentando acertar as credenciais por tentativa e erro. Como o WordPress, por padrão, não limita o número de tentativas, um atacante pode insistir indefinidamente. Além de arriscar a invasao, a enxurrada de requisicoes consome CPU e memória, deixando o site lento ou fora do ar. A defesa não e um único ajuste, e sim camadas: limitar tentativas, exigir senha forte com segundo fator e reduzir a exposicao da página de login.

## Como identificar

- Os logs de acesso mostram centenas de requisicoes POST a "wp-login.php" ou "xmlrpc.php" vindas de vários IPs.
- O site fica lento ou cai com pico de CPU em horarios sem tráfego real, por causa das tentativas de login.
- Plugins de segurança enviam alertas de "too many failed login attempts" ou bloqueio de IP.
- A hospedagem avisa de uso anormal de recursos apontando o wp-login.php como origem.

**Antes de começar:** Antes de restringir o wp-login.php por IP, confirme que o seu endereco e fixo ou tenha um plano B (acesso por FTP) para reverter. Um bloqueio mal configurado pode trancar você mesmo para fora do painel.

## Como prevenir

- Mantenha limite de tentativas de login e 2FA ativos em todos os administradores
- Use senhas longas e unicas e evite o login admin previsivel
- Mantenha um firewall/WAF com rate limiting na frente do wp-login.php e do xmlrpc.php

Erros relacionados

- [Como corrigir Sorry, you are not allowed to access this page](https://full.services/wp-fixer/corrigir-not-allowed-access-wordpress/)
- [Como remover malware de um site WordPress](https://full.services/wp-fixer/remover-malware-wordpress/)
- [Como desativar o XML-RPC com segurança](https://full.services/wp-fixer/desativar-xmlrpc-wordpress/)

## Causa

- Página de login padrão (wp-login.php) exposta e sem limite de tentativas, alvo fácil para bots.
- Usuário admin com login previsivel (admin) combinado com senha fraca ou reutilizada.
- xmlrpc.php ativo, permitindo testar muitas senhas por requisicao via system.multicall.
- Ausencia de 2FA, deixando a senha como única barreira de acesso ao painel.
- Sem firewall/WAF na frente do site, os bots chegam direto ao WordPress sem filtragem.

## Como resolver

1. Limite as tentativas de login: instale um plugin de limite de tentativas (ou ative o recurso no seu plugin de segurança) para bloquear o IP após poucas falhas seguidas, em vez de permitir tentativas infinitas.
2. Exija senha forte e 2FA: troque senhas fracas por senhas longas e unicas e ative autenticacao de dois fatores em todos os usuários administradores.
3. Renomeie o usuário admin: evite o login admin. Crie um novo administrador com nome não obvio e remova o antigo, transferindo o conteúdo.
4. Restrinja o wp-login.php: via .htaccess, libere o acesso a página de login apenas para o seu IP, ou esconda a URL de login com um plugin para bots não a encontrarem.
5. Desative o xmlrpc.php se não usar: bloqueie o xmlrpc.php, muito explorado em ataques de forca bruta amplificada, a menos que você dependa dele (ex.: app movel ou Jetpack).
6. Coloque um WAF na frente: ative um firewall/WAF (no plugin ou na CDN) para filtrar bots conhecidos e aplicar rate limiting antes de a requisicao chegar ao WordPress.

## Código

```apache
# Restringe o acesso ao wp-login.php a um IP especifico e bloqueia o xmlrpc.php.
# Coloque no .htaccess da raiz. Troque 203.0.113.10 pelo seu IP de administracao.
<Files wp-login.php>
  Require ip 203.0.113.10
</Files>

# Bloqueia totalmente o xmlrpc.php (alvo comum de forca bruta amplificada)
<Files xmlrpc.php>
  Require all denied
</Files>
```

## Perguntas frequentes

### Como sei se meu site esta sob ataque de forca bruta?

Olhe os logs de acesso: muitas requisicoes POST seguidas para wp-login.php ou xmlrpc.php, vindas de vários IPs, em horarios sem tráfego real, são o sinal classico. Plugins de segurança também alertam de too many failed login attempts.

### Limitar tentativas de login resolve sozinho?

Ajuda muito, mas e uma camada. Combine com senha forte, 2FA e restricao do wp-login.php. Forca bruta amplificada via xmlrpc.php, por exemplo, pode contornar o limite simples se esse endpoint continuar aberto.

### Devo desativar o xmlrpc.php?

Se você não usa app movel, Jetpack ou pingbacks, sim: o xmlrpc.php permite testar muitas senhas por requisicao e e muito explorado. Se depende dele, mantenha-o ativo e proteja com 2FA e WAF em vez de bloquear.

### Esconder a página de login e suficiente?

Reduz bastante as tentativas automaticas, porque os bots procuram a URL padrão wp-login.php. Mas e ofuscacao, não autenticacao: mantenha também limite de tentativas e 2FA, que protegem mesmo se a URL for descoberta.

### Ataque de forca bruta pode derrubar o site mesmo sem invadir?

Sim. A enxurrada de requisicoes ao login consome CPU e memória do servidor, o que deixa o site lento ou fora do ar (uma especie de negacao de serviço) mesmo que o invasor nunca acerte a senha.

### Bloqueei o wp-login.php por IP e perdi o acesso. Como volto?

Edite o .htaccess via FTP e remova ou ajuste a regra Require ip para o seu endereco atual. Por isso e importante so restringir por IP quando você tem um IP fixo ou um plano B de acesso por FTP.

**Fonte:** [WordPress.org — Brute Force Attacks](https://wordpress.org/documentation/article/brute-force-attacks/)
