Como Proteger seu WordPress: Guia Completo de Segurança

Guia completo de segurança para WordPress. Aprenda a proteger seu site contra invasões, malware e ataques de força bruta.

O WordPress alimenta mais de 40% de todos os sites na internet. Essa popularidade tem um lado negativo: ele é o alvo preferido de hackers, bots e scripts maliciosos. Todos os dias, milhares de sites WordPress são invadidos.

A maioria dessas invasões poderia ser evitada com medidas simples de segurança. Neste guia, vamos cobrir todas as etapas essenciais para blindar o seu site WordPress, desde ajustes básicos até configurações avançadas de servidor.


Por Que a Segurança do WordPress Merece Atenção

Antes de entrar nas soluções, entenda o que está em jogo:

  • SEO destruído : sites hackeados são penalizados pelo Google e podem ser removidos dos resultados de busca
  • Dados de clientes vazados : formulários, e-mails e dados pessoais ficam expostos
  • Reputação comprometida : visitantes que veem alertas de "site inseguro" não voltam
  • Receita perdida : enquanto o site está fora do ar ou comprometido, você perde vendas e oportunidades
  • Custos de recuperação : limpar um site hackeado pode custar muito mais do que prevenir a invasão

A segurança não é um evento, é um processo contínuo. Vamos a cada etapa.


1. Altere o Nome de Usuário "admin"

O nome de usuário padrão "admin" é o primeiro que os bots testam em ataques de força bruta. Se o seu usuário principal ainda é "admin", você está facilitando o trabalho dos invasores.

Como alterar

O WordPress não permite trocar o nome de usuário diretamente. Siga estes passos:

  1. Acesse o painel do WordPress e vá em Usuários > Adicionar novo
  2. Crie um novo usuário com um nome diferente (ex: felipe_gerente )
  3. Defina a função como Administrador
  4. Faça logout e entre com o novo usuário
  5. Vá em Usuários e exclua o usuário "admin"
  6. Quando perguntado, transfira todo o conteúdo para o novo usuário

Via banco de dados (alternativa)

UPDATE wp_users SET user_login = 'novo_usuario' WHERE user_login = 'admin';

2. Use Senhas Fortes

Parece óbvio, mas senhas fracas continuam sendo a porta de entrada mais comum para invasores.

Critérios para uma senha forte

  • Mínimo de 16 caracteres
  • Mistura de letras maiúsculas, minúsculas, números e símbolos
  • Nenhuma palavra do dicionário
  • Diferente de senhas usadas em outros serviços

Ferramentas recomendadas

  • Gerenciadores de senhas : 1Password, Bitwarden (gratuito) ou KeePass
  • Gerador do WordPress : ao criar ou editar um usuário, clique em "Gerar senha"

Force senhas fortes para todos os usuários

Adicione ao functions.php do seu tema ou a um plugin de funcionalidades:

add_action('user_profile_update_errors', function($errors, $update, $user) {
    if (strlen($user->user_pass) < 12) {
        $errors->add('senha_fraca', 'A senha deve ter no mínimo 12 caracteres.');
    }
}, 10, 3);

3. Ative a Autenticação de Dois Fatores (2FA)

A autenticação de dois fatores adiciona uma camada extra de proteção. Mesmo que alguém descubra a senha, não conseguirá acessar sem o segundo fator.

Plugins recomendados

  • WP 2FA : simples, gratuito e funcional
  • Two-Factor : desenvolvido pela equipe do WordPress
  • Wordfence Login Security : módulo de 2FA do Wordfence (pode ser usado independente)

Métodos de 2FA

  • App autenticador (Google Authenticator, Authy): o mais seguro e recomendado
  • E-mail : código enviado por e-mail a cada login
  • Chave de segurança física (YubiKey): o mais seguro, ideal para sites críticos

Configuração com WP 2FA

  1. Instale e ative o plugin WP 2FA
  2. Vá em WP 2FA > Configurações
  3. Selecione "App autenticador (TOTP)" como método principal
  4. Defina quais funções de usuário devem usar 2FA (recomendado: todos os administradores e editores)
  5. Escaneie o QR code com o app autenticador do seu celular
  6. Salve os códigos de backup em local seguro

4. Limite as Tentativas de Login

Ataques de força bruta testam milhares de combinações de usuário e senha automaticamente. Limitar tentativas de login bloqueia esses ataques.

Com plugin

Instale o Limit Login Attempts Reloaded :

  1. Instale e ative o plugin
  2. Vá em Configurações > Limit Login Attempts
  3. Configure:
  4. Tentativas permitidas: 3
  5. Bloqueio: 20 minutos
  6. Após 4 bloqueios: bloqueio de 24 horas
  7. Ative a notificação por e-mail após bloqueios

Via .htaccess (proteção adicional)

Adicione uma proteção extra ao wp-login.php com autenticação HTTP:

<Files wp-login.php>
    AuthType Basic
    AuthName "Acesso Restrito"
    AuthUserFile /caminho/para/.htpasswd
    Require valid-user
</Files>

Gere o arquivo .htpasswd com:

htpasswd -c /caminho/para/.htpasswd usuario

5. Instale um Plugin de Segurança

Plugins de segurança oferecem firewall, scanner de malware, monitoramento de alterações e proteção contra ataques comuns.

Comparação dos principais plugins

Recurso Wordfence Sucuri iThemes Security
Scanner de malware Sim Sim Sim
Monitoramento de arquivos Sim Sim Sim
Proteção de login Sim Limitada Sim
2FA Sim Não Sim
CDN incluído Não Sim (plano pago) Não
Versão gratuita Sim Limitada Sim

Configuração recomendada do Wordfence

  1. Instale e ative o Wordfence Security
  2. Vá em Wordfence > Firewall e clique em "Otimizar o Firewall do Wordfence"
  3. Siga as instruções para baixar o backup do .htaccess e confirmar
  4. Em Wordfence > Scan , execute uma verificação completa
  5. Em Wordfence > Login Security , ative o 2FA para administradores
  6. Em Wordfence > All Options :
  7. Ative "Rate Limiting" para bloquear crawlers agressivos
  8. Ative notificações por e-mail para alertas críticos
  9. Bloqueie IPs que tentam acessar nomes de usuário inexistentes

6. Configure Permissões de Arquivos Corretamente

Permissões incorretas podem permitir que invasores leiam ou modifiquem arquivos críticos do site.

Permissões recomendadas

Arquivo/Pasta Permissão Descrição
Arquivos 644 Leitura para todos, escrita só para o dono
wp-config.php 600 Leitura e escrita só para o dono
.htaccess 644 Leitura para todos, escrita só para o dono

Como aplicar via SSH

# Corrigir permissões de pastas
find /caminho/do/site -type d -exec chmod 755 {} \;

# Corrigir permissões de arquivos
find /caminho/do/site -type f -exec chmod 644 {} \;

# Proteger wp-config.php
chmod 600 /caminho/do/site/wp-config.php

7. Desative o XML-RPC

O XML-RPC é uma interface que permite que aplicativos externos se comuniquem com o WordPress. Ele também é usado em ataques de força bruta e DDoS amplificado.

Se você não usa o app do WordPress para celular ou serviços que dependem do XML-RPC, desative-o.

Via .htaccess

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Via plugin

O Wordfence e o iThemes Security permitem desativar o XML-RPC nas configurações. Também existem plugins específicos como o Disable XML-RPC .

Via functions.php

add_filter('xmlrpc_enabled', '__return_false');

8. Desative a Edição de Arquivos pelo Painel

O WordPress permite editar arquivos de temas e plugins diretamente pelo painel administrativo. Se um invasor conseguir acesso ao painel, essa função permite que ele injete código malicioso sem acessar o servidor.

Adicione ao wp-config.php :

define('DISALLOW_FILE_EDIT', true);

Para impedir também a instalação e atualização de plugins/temas pelo painel (recomendado em sites de produção):

define('DISALLOW_FILE_MODS', true);

9. Adicione Headers de Segurança

Headers HTTP de segurança protegem contra ataques como XSS (Cross-Site Scripting), clickjacking e injeção de conteúdo.

Via .htaccess (Apache/LiteSpeed)

<IfModule mod_headers.c>
    # Protege contra XSS
    Header set X-Content-Type-Options "nosniff"

    # Previne clickjacking
    Header set X-Frame-Options "SAMEORIGIN"

    # Ativa proteção XSS do navegador
    Header set X-XSS-Protection "1; mode=block"

    # Controla informações de referência
    Header set Referrer-Policy "strict-origin-when-cross-origin"

    # Previne que o site seja carregado em contextos inseguros
    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

    # Política de permissões
    Header set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>

Via Nginx

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

Como verificar

Use o site securityheaders.com para verificar se os headers estão configurados corretamente. A nota ideal é A ou A+.


10. Configure um WAF (Web Application Firewall)

Um WAF filtra o tráfego malicioso antes que ele chegue ao seu site. Ele bloqueia injeções SQL, XSS, ataques de força bruta e outras ameaças conhecidas.

Tipos de WAF

  • WAF no servidor (plugin) : Wordfence. Funciona dentro do WordPress, protege na camada de aplicação.
  • WAF na nuvem (DNS) : Cloudflare, Sucuri. O tráfego passa pelo WAF antes de chegar ao servidor. Mais eficiente contra DDoS.
  • WAF no servidor web : ModSecurity (Apache/Nginx). Proteção na camada do servidor, exige configuração técnica.

Configuração básica do Cloudflare como WAF

  1. Crie uma conta no Cloudflare
  2. Adicione seu domínio e altere os nameservers
  3. Ative o modo "Under Attack" se estiver sofrendo ataque DDoS
  4. Em Security > WAF , ative as regras gerenciadas do Cloudflare
  5. Configure regras personalizadas para bloquear tráfego de países onde você não tem público
  6. Ative o "Bot Fight Mode" para bloquear bots maliciosos

11. Outras Medidas de Segurança Importantes

Desative a listagem de diretórios

Adicione ao .htaccess :

Options -Indexes

Proteja o diretório wp-includes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Mova o wp-config.php um nível acima

O WordPress reconhece automaticamente o wp-config.php um diretório acima da raiz do site. Isso impede que ele seja acessado diretamente via navegador:

mv /var/www/seusite/wp-config.php /var/www/wp-config.php

Desative a exibição de erros PHP em produção

Adicione ao wp-config.php :

define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);

Altere o prefixo das tabelas do banco de dados

Em novas instalações, use um prefixo diferente de wp_ . Em sites existentes, plugins como o iThemes Security oferecem essa opção.

Mantenha tudo atualizado

  • WordPress core
  • Plugins
  • Temas
  • Versão do PHP

As atualizações corrigem vulnerabilidades conhecidas. Um plugin desatualizado é uma porta aberta para invasores.


Checklist de Segurança WordPress

Use esta lista para verificar o estado atual do seu site:

  • [ ] Nome de usuário "admin" foi removido
  • [ ] Senhas fortes para todos os usuários (16+ caracteres)
  • [ ] Autenticação de dois fatores ativada
  • [ ] Tentativas de login limitadas
  • [ ] Plugin de segurança instalado e configurado (Wordfence ou Sucuri)
  • [ ] Permissões de arquivos corretas (755 pastas, 644 arquivos, 600 wp-config.php)
  • [ ] XML-RPC desativado
  • [ ] Edição de arquivos pelo painel desativada
  • [ ] Headers de segurança configurados
  • [ ] WAF ativo (Cloudflare, Sucuri ou Wordfence)
  • [ ] Listagem de diretórios desativada
  • [ ] WordPress, plugins e temas atualizados
  • [ ] Versão do PHP atualizada (8.1+)
  • [ ] SSL/HTTPS ativo em todo o site
  • [ ] Backups automáticos configurados
  • [ ] Monitoramento de uptime ativo

Monitoramento Contínuo

Segurança não é algo que você configura uma vez e esquece. Implemente um monitoramento contínuo:

  • Verificações semanais com o scanner do Wordfence ou Sucuri
  • Alertas de login para saber quando alguém acessa o painel
  • Monitoramento de integridade de arquivos para detectar alterações suspeitas
  • Revisão mensal de usuários para remover contas desnecessárias
  • Auditoria trimestral de plugins para remover plugins desativados ou abandonados

Segurança no Servidor Também Importa

A maioria dos guias de segurança WordPress foca apenas no site. Mas boa parte das invasões acontece por falhas no servidor: SSH com senha fraca, serviços desnecessários rodando, firewall do servidor desconfigurado, backups ausentes.

A HOSTWP cuida da segurança do WordPress e do servidor ao mesmo tempo. Configuramos firewall, hardening do sistema operacional, monitoramento 24/7 e backups automáticos. Se o site for invadido, a gente limpa, identifica a causa e blinda para não acontecer de novo. Entre em contato com a HOSTWP e tenha segurança de verdade, do servidor ao site.


Leia também: WordPress Hackeado: O Que Fazer | Erros WordPress: Guia Completo Para Resolver os Problemas Mais Comuns

Artigos relacionados