Skip to content

Tudo para WordPress, desenvolvimento web — e não só

⚙️ All in one WP security: configuração de segurança WordPress passo a passo em 16 passos

⚙️ All in one WP security: configuração de segurança WordPress passo a passo em 16 passos

Todos os dias, um site WordPress médio recebe entre 200 e 500 pedidos ilegítimos ao wp-login.php. Não são hackers de capuz, são scripts. Vasculham a internet, encontram a página de login padrão e começam o ataque de força bruta: admin/123456, admin/qwerty, admin/password_de_base_de_dados_vazada. Mais cedo ou mais tarde, conseguem entrar.

O alojamento não protege contra isto. A firewall do servidor vê um pedido POST legítimo para o wp-login.php e deixa-o passar, não consegue distinguir se é você a introduzir uma palavra-passe ou se é um bot. A proteção do WordPress e a proteção do servidor são duas camadas diferentes, e você é responsável pela primeira.

O All-In-One Security (AIOS) da equipa UpdraftPlus cobre esta camada por completo. Um plugin em vez de um pacote: firewall, proteção de login, auditoria de ficheiros, bloqueio de bots e backups. Um milhão de instalações, classificação de 4,7 no WordPress.org. A versão gratuita é suficiente para proteger um site comum. Abaixo encontra uma configuração passo a passo, do básico à exportação da configuração.

💡 Visão geral rápida:

  • Vamos ocultar a página de login atrás de um URL personalizado e ativar a autenticação de dois fatores. Os ataques de força bruta falharão de imediato.
  • Vamos configurar três camadas de firewall: regras htaccess, regras PHP e lista negra 6G. Filtragem de pedidos em camadas.
  • Vamos bloquear o acesso a ficheiros de serviço, desativar o editor de PHP do painel de administração e verificar as permissões das pastas.
  • Vamos ativar a deteção de honeypot e de erros 404. Os bots serão filtrados antes de chegarem, sem captcha para os utilizadores.
  • Vamos guardar a configuração pronta num ficheiro para transferir entre sites num minuto.

Passo 1. Remover os metadados do gerador WP

A primeira coisa que revela a sua versão do WordPress é a etiqueta <meta name="generator" content="WordPress X.X.X"> no <head> de cada página. Um atacante obtém o número exato da versão e seleciona exploits para ela em segundos. O AIOS remove esta etiqueta com um simples interruptor.

Caminho: WP SecuritySettingsGeneral Settings. Ative Remove WP Generator Meta Info e guarde. Verifique o código fonte da sua página inicial (Ctrl+U), a linha com generator deve desaparecer. Também nesta mesma secção, desative Enable Info Comments, o AIOS adiciona por defeito comentários HTML com informações de serviço, é melhor removê-los também.

Configuração da remoção da meta tag do WP Generator no AIOS

Passo 2. Bloquear tentativas de login

O ataque de força bruta ao wp-login.php é o ataque número um em frequência. Os bots tentam centenas de palavras-passe por minuto, criando carga no servidor e na base de dados. Mais cedo ou mais tarde, uma palavra-passe fraca é descoberta, especialmente se um utilizador administrador ou editor usar qwerty123.

Caminho: WP SecurityUser LoginLogin Lockdown. Ative Enable Login Lockdown e defina: máximo de 5 tentativas, bloqueio de IP durante 60 minutos, reinicialização do contador após 24 horas. Para sites com vários administradores, ative Notify by Email, a notificação de bloqueio chega instantaneamente. Se vir notificações frequentes, altere o slug da página de login (passo 14).

Configuração do limite de tentativas de login no AIOS

Passo 3. Aprovação manual para novos registos

Se o registo estiver aberto no seu site, sem esta configuração qualquer bot criará uma conta em segundos. As contas de spam acumulam-se aos milhares, entupindo a base de dados e criando superfície de ataque através da escalada de privilégios.

Caminho: WP SecurityUser RegistrationManual Approval. Ative Enable Manual Approval. Agora, cada nova conta aguarda a confirmação do administrador antes da ativação. Nesta mesma secção, configure o captcha para os formulários de registo, uma barreira adicional que os bots não conseguem ultrapassar.

Moderação manual de registos de utilizadores no AIOS

Passo 4. Alterar o prefixo das tabelas da base de dados

O prefixo wp_ é padrão para todas as instalações WordPress. As injeções de SQL e os scripts de comprometimento em massa visam-no especificamente: quando um exploit conhece os nomes das tabelas (wp_users, wp_options), o ataque torna-se direcionado em vez de cego.

Caminho: WP SecurityDatabaseDB Prefix. Vê o prefixo atual. Se for wp_, clique em Change DB Table Prefix. O plugin irá sugerir uma string aleatória ou permitir-lhe-á introduzir uma sua (4 a 6 caracteres, apenas letras latinas e underscores). Antes de executar, faça obrigatoriamente uma cópia de segurança da base de dados (passo 5). O processo demora 5 a 10 segundos num site comum, mas a reversão sem cópia de segurança é impossível.

Alteração do prefixo padrão das tabelas da base de dados do WordPress

Passo 5. Cópia de segurança da base de dados

Antes de qualquer alteração estrutural, mudança de prefixo, limpeza de revisões, atualização do núcleo, a cópia de segurança é obrigatória. O AIOS está integrado com o UpdraftPlus, o backup é lançado a partir da mesma interface.

Caminho: WP SecurityDatabaseDatabase Backup. Clique em Create Database Backup, o ficheiro é guardado localmente. Configure o envio automático para a nuvem através do UpdraftPlus (Google Drive, Dropbox, S3) e o agendamento diário. Restaurar um site após um comprometimento sem cópia de segurança é praticamente impossível, e com o AIOS + UpdraftPlus é um botão.

Criação de uma cópia de segurança da base de dados através do AIOS

Passo 6. Verificar permissões de diretórios e ficheiros

Permissões de acesso incorretas, 777 no wp-config.php, 666 na pasta uploads, acesso de escrita aberto ao wp-content, abrem um caminho direto para a escrita de código malicioso. Se um atacante obtiver acesso a um tema através de uma vulnerabilidade, as permissões incorretas permitem-lhe modificar ficheiros do sistema.

Caminho: WP SecurityFilesystem SecurityFile Permissions. Execute a verificação. Todas as linhas devem estar a verde. Linha vermelha ou amarela, clique em Set Recommended Permissions ao lado do ficheiro ou pasta problemático. Depois de corrigir, reinicie a verificação, deve ficar limpa.

Verificação de permissões de ficheiros e pastas do WordPress

Passo 7. Desativar a edição de PHP a partir do painel de administração

O editor integrado de temas e plugins, wp-admin/theme-editor.php e wp-admin/plugin-editor.php, é um caminho direto para a execução arbitrária de código. Se um atacante obtiver acesso ao painel de administração, o editor permite adicionar uma shell PHP ao functions.php e ganhar controlo do servidor. Um programador legítimo não precisa deste editor, as edições são feitas via FTP/SFTP ou deployment.

Caminho: WP SecuritySegurança do Sistema de FicheirosEdição de Ficheiros PHP. Ative Desativar a Edição de Ficheiros PHP. Depois de guardar, os itens «Editor de Temas» e «Editor de Plugins» desaparecerão dos menus «Aparência» e «Plugins». Se precisar de fazer edições, apenas através do gestor de ficheiros do alojamento ou SSH.

Desativação do editor de ficheiros PHP de temas e plugins do WordPress

Passo 8. Bloquear o acesso aos ficheiros de serviço do WordPress

readme.html, license.txt, wp-config-sample.php e debug.log revelam a versão do CMS, a estrutura de instalação e caminhos internos. O debug.log é especialmente perigoso: no modo WP_DEBUG, escreve caminhos absolutos do servidor e stack traces de erros com nomes de plugins.

Caminho: WP SecuritySegurança do Sistema de FicheirosFicheiros de Informação do WP. Marque os quatro itens: readme.html, license.txt, wp-config-sample.php, debug.log. Guarde. Agora, ao solicitar diretamente yoursite.com/readme.html, o servidor devolverá 403 Forbidden. Estas são regras .htaccess, funcionam ao nível do Apache/Nginx antes de o PHP iniciar.

Bloqueio de acesso a ficheiros de serviço do WordPress através do AIOS

Passo 9. Funções básicas da firewall

A firewall do AIOS tem três níveis de proteção. As regras .htaccess bloqueiam pedidos antes de passarem para o PHP (a camada mais rápida). As regras PHP filtram vetores XSS, desativam XML-RPC e feeds RSS. A terceira camada corta os falsos bots da Google pelo user-agent.

Caminho: WP SecurityFirewallFirewall Básica. Ative:

  • Ativar a Proteção Básica da Firewall, ativação geral;
  • Bloquear Falsos Googlebots, os bots com user-agent falso do Googlebot são filtrados;
  • Desativar Feeds RSS e Atom, se o site não usar RSS, desative (análise de conteúdo);
  • Desativar a Listagem de Diretórios, impede o Apache de mostrar o conteúdo das pastas sem index.php.

Aqui desative também o XML-RPC se não usar a aplicação móvel do WordPress, o Jetpack ou trackbacks. Para a maioria dos sites de blogues em 2026, o XML-RPC não é necessário.

Configurações básicas da firewall de três níveis do AIOS

Passo 10. Regras adicionais de firewall

As regras alargadas do .htaccess fecham vários outros vetores de ataque: acesso direto por navegador ao wp-config.php e .htaccess, limite de tamanho de ficheiros enviados, desativação da assinatura do servidor.

Caminho: WP SecurityFirewallAdditional Firewall. Ative:

  • Deny Access to wp-config.php, a configuração chave fica indisponível via HTTP;
  • Deny Access to.htaccess, o ficheiro de regras do servidor fica protegido contra leitura;
  • Disable Server Signature, o Apache deixa de reportar a versão nos cabeçalhos Server;
  • Limit File Upload Size, defina 10 MB (suficiente para imagens, insuficiente para enviar um arquivo com shell).

As regras são escritas diretamente no .htaccess. Depois de guardar, abra o site numa janela anónima e certifique-se de que tudo funciona.

Regras htaccess adicionais para proteção do WordPress

Passo 11. Lista negra da firewall 6G

A 6G Firewall da Perishable Press é um conjunto rigoroso de regras .htaccess que bloqueiam padrões maliciosos em URLs e query strings: injeções de SQL, tentativas de inclusão de ficheiros (../../wp-config.php), vetores de XSS e assinaturas de scanners de vulnerabilidades. As regras são estáticas, não requerem atualizações, os padrões de ataque não mudam há anos.

Caminho: WP SecurityFirewall6G Blacklist. Ative Enable 6G Firewall Protection e guarde. Se após a ativação um plugin legítimo deixar de funcionar (raro, mas acontece com plugins com padrões de URL não standard), adicione-o à lista branca: FirewallWhitelist.

Ativação da firewall 6G da Perishable Press no AIOS

Passo 12. Prevenir hotlinking de imagens

Hotlinking é quando outro site incorpora a sua imagem através do URL direto (<img src="https://yoursite.com/uploads/photo.jpg">). O seu servidor serve obedientemente a imagem, consumindo tráfego e recursos de CPU, enquanto o visitante vê o conteúdo no site de outra pessoa. Para sites com capturas de ecrã e fotos originais, isto é notório.

Caminho: WP SecurityFirewallPrevent Hotlinks. Ative Prevent Hotlinking. Adicione domínios de exceção (google.com, facebook.com, twitter.com) para que as pré-visualizações nas redes sociais e motores de busca continuem a funcionar. O AIOS escreve regras no .htaccess, proibindo pedidos diretos de imagens com um cabeçalho Referer de outro domínio.

Proteção contra hotlinking de imagens do WordPress através do AIOS

Passo 13. Deteção de erros 404

Erros 404 em massa são um sinal de scan de vulnerabilidades. Um bot tenta /wp-admin/, /admin/, /backup.zip, /phpmyadmin/ e centenas de outros caminhos típicos, verificando a superfície de ataque. O AIOS monitoriza esses pedidos, associa-os a IPs e bloqueia a origem.

Caminho: WP SecurityScanner404 Detection. Ative Enable 404 Detection. Limiar: 20 erros em 15 minutos → bloqueio temporário de 30 minutos; 50 erros em 15 minutos → bloqueio permanente. O separador Logged 404 Events mostrará uma lista ao vivo de pedidos suspeitos, útil para perceber o que exatamente está a ser sondado no seu site.

Configuração da deteção de erros 404 e bloqueio de scanners no AIOS

Passo 14. Alterar o endereço da página de login

/wp-admin e /wp-login.php são pontos de entrada padrão, conhecidos por todos os bots. Sem este passo, a proteção de força bruta (passo 2) funciona, mas os ataques continuam a chegar aos milhares, os bots batem a uma porta conhecida. Renomear a página de login remove o próprio alvo.

Caminho: WP SecurityBrute ForceRename Login Page. Introduza um slug personalizado: pelo menos 4 caracteres, não admin, login ou wp-*. Boa opção: manage- mais 6 letras aleatórias, por exemplo manage-xk7qpd. Depois de guardar, verifique imediatamente o novo URL e guarde-o nos favoritos. O wp-login.php padrão será desativado; se se esquecer do slug, terá de o repor via FTP (apagando ou renomeando o plugin).

Renomeação da página de login do WordPress para um URL personalizado no AIOS

Passo 15. Armadilha honeypot para bots

O honeypot é um campo oculto no formulário de login. Um humano não o vê (regra CSS display:none ou posicionamento fora do ecrã), mas um bot encontra-o ao analisar a marcação HTML e preenche-o. O AIOS deteta o campo oculto preenchido e bloqueia a tentativa como não humana. Sem captcha, o utilizador nem sequer sabe da verificação.

Caminho: WP SecurityBrute ForceHoneypot. Ative Enable Honeypot Protection. O campo é adicionado automaticamente ao formulário wp-login.php e funciona discretamente em segundo plano. De acordo com a Team Updraft, o honeypot filtra a esmagadora maioria dos bots automatizados; eles não precisam especificamente do seu painel de administração, apenas procuram o formulário padrão e preenchem todos os campos em sequência.

Ativação da armadilha honeypot para proteção do formulário de login do WordPress

Passo 16. Prevenir a incorporação do site em frames

Clickjacking é um ataque em que o seu site carrega num <iframe> transparente sobre o site do atacante. O utilizador pensa que está a clicar na interface, mas na realidade está a interagir com o formulário de outro site. O cabeçalho X-Frame-Options: SAMEORIGIN impede a incorporação.

Caminho: WP SecurityFirewallPrevent Framing. Ative Prevent Your Site From Being Displayed in a Frame. O AIOS adiciona o cabeçalho HTTP X-Frame-Options: SAMEORIGIN a todas as respostas do servidor. Verifique: curl -I https://yoursite.com, o cabeçalho deve estar na resposta. Para sites com formulário de login, carrinho ou painel de administração, este passo é crítico.

Proteção contra clickjacking através do cabeçalho X-Frame-Options no AIOS

Exportar configuração pronta para outros sites

Se gere vários sites, a importação-exportação poupa horas. O AIOS guarda toda a configuração num ficheiro de texto que é carregado noutro site com um clique.

Caminho: WP SecuritySettingsImport/Export. Clique em Export Settings, obtém um ficheiro .txt com todas as opções ativadas e os seus valores. O ficheiro pode ser editado antes da importação noutro site: substitua o email para notificações de segurança e o slug da página de login pelos atuais do site de destino.

Importação: WP SecuritySettingsImport/ExportImport Settings → selecione o ficheiro. Todos os 16 passos serão aplicados automaticamente em poucos segundos, sem necessidade de percorrer cada ecrã novamente.

⁉️🤔 Perguntas frequentes

O AIOS é necessário se o alojamento prometer «proteção total»?

O alojamento protege o servidor: sistema operativo, firewalls de rede, filtragem de DDoS. O AIOS protege a aplicação WordPress: força bruta no painel de administração, injeções em plugins, vulnerabilidades em temas desatualizados. A firewall do servidor não vê que um bot está a fazer força bruta de palavras-passe no wp-login.php, vê pedidos POST legítimos. As camadas não se sobrepõem, precisa de ambas. Um site num alojamento «protegido» sem um plugin de segurança continua vulnerável ao nível do CMS.

O AIOS vai entrar em conflito com a Cloudflare ou outra WAF?

Não, funcionam em níveis diferentes. A Cloudflare é de camada 7 (proxy HTTP), filtra o tráfego antes de chegar ao servidor. O AIOS é de nível de aplicação (PHP, .htaccess), depois de o pedido chegar ao WordPress. A única nuance: ao usar a Cloudflare, ative Ativar deteção de IP no AIOS, para que o plugin veja o IP real do visitante a partir do cabeçalho X-Forwarded-For, e não o IP do proxy.

Posso remover o AIOS após a configuração? As regras ficam no.htaccess de qualquer forma.

Não. As regras do .htaccess permanecem fisicamente no ficheiro, mas sem monitorização e atualizações ficarão desatualizadas. Pior: o honeypot, a renomeação da página de login, o bloqueio do editor PHP e a autenticação de dois fatores só funcionam com o plugin ativo, isto é lógica PHP, não regras estáticas. Remova o plugin e abre o wp-login.php padrão, desativando toda a proteção de login.

O site vai quebrar se eu ativar todos os 16 passos de uma vez?

Na grande maioria dos sites, não. Mas a recomendação para produção: ative em blocos de três a quatro passos, verificando o funcionamento do site após cada bloco. Tenha especial cuidado com a Firewall 6G (passo 11) e a alteração do prefixo da tabela (passo 4, o backup é obrigatório). Ao longo dos anos do plugin em um milhão de instalações, não foram registados conflitos críticos com temas e plugins populares.

O que oferece a versão premium do AIOS em relação à gratuita?

Três adições principais: autenticação de dois fatores com políticas flexíveis (TFA obrigatório para administradores após N dias, configuração da frequência de re-solicitação), scanner de malware com alertas da lista negra do Google e bloqueador de países (proibição de acesso por geo-IP). A versão gratuita é suficiente para proteger um blog ou site corporativo. Uma loja online com dados confidenciais de clientes deve optar pelo Premium.

O que fazer se me esquecer do URL da página de login personalizada?

Ligue-se ao servidor via FTP/SFTP, vá a /wp-content/plugins/all-in-one-wp-security-and-firewall/ e renomeie temporariamente a pasta do plugin. Isto irá desativar o AIOS e repor o wp-login.php padrão. Inicie sessão no painel de administração, renomeie a pasta de volta, ative o plugin e defina um novo slug. Para evitar esquecimentos, guarde o URL no seu gestor de palavras-passe imediatamente ao criá-lo.

Vale a pena configurar o AIOS em 2026 ou existem alternativas melhores?

Anos depois, o AIOS continua a ser o plugin de segurança gratuito para WordPress mais equilibrado: um milhão de instalações, desenvolvimento ativo, atualizações regulares para novas versões do core. Alternativas como o Wordfence ou o Solid Security também são fortes, mas mais pesadas.

Os 16 passos acima demoram 15 a 20 minutos. Resultado: página de login oculta, três camadas de firewall, honeypot invisível e configuração pronta a clonar para o próximo site.

Conjunto mínimo sem o qual a proteção não pode ser considerada completa:

  • Base: passos 1, 2, 9, 14, mascaramento de versão, proteção contra força bruta, firewall básica e página de login oculta;
  • Nível de servidor: passos 7, 8, 10, 11, proibição do editor PHP, bloqueio de ficheiros de serviço, regras adicionais e 6G;
  • Proteção profunda: passos 4, 6, 12, 15, prefixo da tabela, permissões de acesso, anti-hotlink, honeypot;
  • Perímetro: passos 3, 5, 13, 16, moderação de registos, backups, deteção 404, proteção contra clickjacking.

Configure um site, exporte a configuração e importe noutros num minuto. Uma vez por trimestre, verifique AIOSPainel: o contador de segurança mostrará se alguma definição «caiu» após uma atualização do core.