Veja as falhas mais comuns em WordPress, como explorá-las é possível e, principalmente, como corrigir de forma profissional, segura e sustentável.
Resumo Rápido
- Atualizações atrasadas de núcleo, temas e plugins.
- Permissões de arquivo incorretas e execução de PHP em
/uploads. - Credenciais fracas, falta de 2FA e brute force no
wp-login.php. - XML‑RPC e REST mal configurados, XSS/SQLi/CSRF em plugins vulneráveis.
- Falta de HTTPS, cabeçalhos de segurança e backup/monitoramento.
1) Núcleo, Temas e Plugins Desatualizados
Explorações conhecidas são publicadas diariamente. Se você atrasa updates, vira alvo automático.
Como corrigir
- Ative autoupdate para minores do core e plugins críticos.
- Mantenha apenas o tema ativo e um tema base atualizado (ex.: Twenty Twenty‑Four).
- Remova plugins/temas inativos ou abandonados (>12 meses sem update).
2) Plugins “Nulled” e Repositórios Não Oficiais
São o vetor mais comum de backdoors (ofuscação com eval, base64_*, gzinflate).
Como corrigir
- Use somente repositório oficial ou vendors confiáveis.
- Substitua por versões limpas e audite o código antes de ativar.
3) Permissões de Arquivo e Execução de PHP em Uploads
Permissões frouxas e execução de PHP em /wp-content/uploads permitem webshell.
Como corrigir
- Defina 644 para arquivos e 755 para pastas.
- Bloqueie PHP em
/uploads(Apache):
<FilesMatch "\.php$">
Deny from all
</FilesMatch>
<IfModule mod_php.c>
php_flag engine off
</IfModule>
- Nginx (location no bloco de uploads):
location ~* ^/wp-content/uploads/.*\.php$ { return 403; }
4) Senhas Fracas, Admin Padrão e Falta de 2FA
Brute force e credential stuffing miram /wp-login.php e xmlrpc.php.
Como corrigir
- Remova usuário “admin” e crie outro com role mínimo necessário.
- Ative 2FA para administradores e editores.
- Implemente rate limit e CAPTCHA no login; considere renomear URL de login.
5) XML‑RPC e REST API Expostos
XML‑RPC permite amplificação de brute force; REST pode vazar dados se plugins expandirem endpoints sem checagem de permissão.
Como corrigir
- Bloqueie XML‑RPC se não usar Jetpack/apps:
<Files xmlrpc.php>
Require all denied
</Files>
- Restrinja REST a usuários autenticados quando sensível; valide
current_user_can()em endpoints custom.
6) XSS, SQL Injection e CSRF em Plugins/Tema
Falhas de validação/saneamento permitem injeção de scripts, vazamento de dados e escalada.
Como corrigir
- Use funções de segurança do WP:
wp_nonce_field,check_admin_referer,sanitize_text_field,esc_html. - Query segura:
$wpdb->prepare()e tipos corretos. - Remova shortcodes/widgets inseguros; atualize imediatamente quando sair CVE.
7) Editor de Arquivos Ativo no Painel
Se invadirem sua conta, editarão tema/plugin pelo painel.
Como corrigir
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', false); /* opcional: atualizações via painel */
8) Vazamento de wp-config.php e Directory Listing
Exposição do config revela credenciais; listing entrega estrutura do site.
Como corrigir
Options -Indexes
<Files wp-config.php> Require all denied </Files>
Armazene wp-config.php um nível acima da raiz quando possível.
9) Sem HTTPS e Sem Cabeçalhos de Segurança
Tráfego sem TLS e ausência de políticas expõem cookies e facilitam XSS/Clickjacking.
Como corrigir
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "no-referrer-when-downgrade"
Header set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Implemente CSP gradualmente (modo report‑only antes):
Header set Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval'"
10) Falta de Backups, Logs e Monitoramento
Sem histórico confiável, a recuperação é lenta e cara.
Como corrigir
- Backups versionados: diário (DB) e semanal (arquivos), rotacionados e testados.
- Log de login/admin, integridade de arquivos (diff) e alertas de alteração.
- WAF/CDN (rate limit, bot management) e auditoria de usuários.
11) wp‑cron, Admin‑Ajax e Endpoints Exaustos
Cron interno pode causar DoS em sites com tráfego; endpoints sem cache saturam PHP.
Como corrigir
define('DISABLE_WP_CRON', true);
Agende cron do sistema (Linux):
*/5 * * * * wget -q -O - https://seudominio.com/wp-cron.php?doing_wp_cron=1 >/dev/null 2>&1
Cacheie respostas públicas do admin-ajax.php via proxy (Varnish/Nginx) quando aplicável.
12) Banco com Privilégios Excessivos
Usuário do WP com privilégios globais aumenta o impacto da invasão.
Como corrigir
- Conceda apenas
SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEXno banco do site. - Rotacione senha do DB após incidentes; mantenha
AUTH_KEYeSALTfortes.
13) Uploads sem Validação
Upload de SVG, PHP ou extensões duplas permite RCE.
Como corrigir
- Restrinja tipos MIME; valide tamanho e verifique assinatura do arquivo (finfo).
- Armazene uploads fora da raiz pública quando possível; sirva por proxy.
Checklist de Endurecimento (Hardening)
- Atualizações do core/tema/plugins + remoção do que não usa.
- WAF com rate limit em
/wp-login.phpe/xmlrpc.php. - 2FA, senhas fortes e
DISALLOW_FILE_EDIT. - Permissões 644/755 e bloqueio de PHP em
/uploads. - HTTPS + HSTS + cabeçalhos de segurança.
- Backups testados e logs de integridade.
- Restrição do REST/JSON quando necessário.
- Usuário MySQL com privilégios mínimos.
Perguntas Frequentes (FAQ)
Trocar o prefixo das tabelas (wp_) aumenta a segurança?
Ajuda contra bots genéricos, mas não substitui validação, prepared statements e controle de acesso. Trate apenas como camada extra.
Devo desativar o XML‑RPC totalmente?
Se não usa apps/Jetpack, sim. Caso contrário, limite por IP e aplique rate limit e 2FA.
Qual é a melhor política de backups?
Banco diário, arquivos semanal, retenção mínima de 14–30 dias, armazenamento off‑site e testes de restauração trimestrais.
Preciso de plugin de segurança se já tenho WAF no servidor/CDN?
Sim, camadas se complementam. WAF bloqueia tráfego malicioso; o plugin registra eventos, reforça login e checa integridade.
Como identificar rapidamente arquivos infectados?
Ordene por data de modificação, busque por eval, base64_decode, gzinflate e compare com o core limpo do WordPress.
Tags
- Segurança WordPress
- Vulnerabilidades WordPress
- Hardening WordPress
- Bloquear XML-RPC
- XSS e SQL Injection
- CSRF em plugins
- Permissões de arquivo 644 755
- Bloquear PHP em uploads
- HTTPS HSTS CSP
- Backup e monitoramento
- WAF e rate limit
- REST API segura
- Servidor e CDN
- Auditoria de usuários
- Integridade de arquivos









