# Hardening WordPress: O guia em 7 camadas de defesa

<strong>Hardening</strong> reduz a superfície de ataque do WordPress em camadas, antes do invasor encontrar uma brecha. Segundo a Patchstack (2024), surgiram 7.966 vulnerabilidades no ecossistema em 2024, 96% delas em plugins. Não é instalar um plugin: é configuração, permissão e patch somados. Comece pelo wp-config.php e pelo login.

Hardening é o processo de fechar os vetores de ataque do WordPress antes que alguém os explore, somando configuração de servidor, permissões de arquivo, atualização de plugins e controle de acesso ao login. A palavra vem de "endurecer": você não adiciona uma defesa mágica, você remove cada porta que não precisa estar aberta. No suporte da FULL, a gente vê que a maioria dos sites invadidos tinha um plugin de segurança ativo, mas continuava com a configuração padrão do <a href="https://full.services/glossario/wp-config/">wp-config.php</a> intacta. Este guia abre o tema em camadas e linka o <a href="https://full.services/seguranca-wordpress/">guias de segurança WordPress da FULL</a> para cada etapa.

---

## O que é hardening no WordPress: Definição operacional

Hardening no WordPress é a redução metódica da superfície de ataque, distribuída em camadas que se sobrepõem: servidor, arquivos, banco, login e aplicação. Na maioria dos chamados de invasão no suporte da FULL (base de 150 mil sites), a falha não estava no plugin de segurança ausente, mas numa camada de configuração que ninguém revisou. Não é um produto, é disciplina recorrente.

A diferença prática importa porque muda onde você investe esforço. Um <a href="https://full.services/glossario/firewall-wordpress/">firewall WAF</a> bloqueia o payload na borda; o hardening de configuração elimina o vetor antes que exista payload para bloquear. As duas abordagens são complementares, não substitutas. Um site com Wordfence ativo, mas com AUTH_KEY default e permissão 777 em wp-content, está com o segurança na porta da frente enquanto a porta dos fundos segue destrancada. O objetivo do hardening é trancar todas elas, na ordem certa.

<p class="wp-caption-text">Legenda: cada camada do hardening fecha um vetor distinto; sozinha, nenhuma protege o site por inteiro.</p>

## Por que o plugin de segurança sozinho não basta

Um plugin de segurança resolve só uma fração do problema porque atua na camada de aplicação, e a maioria das invasões entra por outra. Segundo a Patchstack, 96% das 7.966 vulnerabilidades de 2024 estavam em plugins de terceiros, não no núcleo. Um WAF não corrige permissão de arquivo errada nem troca chave secreta previsível: só intercepta requisição que passa por ele.

O ponto cego aparece quando o invasor não precisa de requisição suspeita: se o cookie de sessão usa a AUTH_KEY default do wp-config.php, ele forja uma sessão de admin válida sem tocar no login. A tabela abaixo mapeia as 7 camadas, o vetor que cada uma fecha e a ferramenta típica.

<table id="camadas-hardening-wordpress">
  <caption>Hardening WordPress: 7 camadas, vetor fechado e ferramenta</caption>
  <thead>
    <tr>
      <th scope="col">Camada</th>
      <th scope="col">Vetor que fecha</th>
      <th scope="col">Ferramenta típica</th>
    </tr>
  </thead>
  <tbody>
    <tr><th scope="row">Servidor e PHP</th><td>Versão obsoleta com CVE conhecido</td><td>PHP 8.2, painel da hospedagem</td></tr>
    <tr><th scope="row">wp-config.php</th><td>Chaves default e forja de cookie</td><td>Gerador de salts oficial</td></tr>
    <tr><th scope="row">Permissões de arquivo</th><td>Webshell via upload sem validação</td><td>chmod 644/755, painel</td></tr>
    <tr><th scope="row">Login e acesso</th><td>Força bruta e credencial fraca</td><td>2FA, All in One Security</td></tr>
    <tr><th scope="row">Plugins e temas</th><td>CVE não corrigido</td><td>Wordfence, atualização gerenciada</td></tr>
    <tr><th scope="row">Firewall WAF</th><td>Payload em tempo de execução</td><td>Cloudflare, Wordfence</td></tr>
    <tr><th scope="row">Monitoramento</th><td>Persistência após invasão</td><td>Scanner de integridade, backup</td></tr>
  </tbody>
</table>

## Camada 1: Hardening do wp-config.php em 4 ajustes

O wp-config.php é a primeira camada porque concentra as chaves que autenticam toda sessão do site. Quatro ajustes fecham os vetores mais explorados: trocar as 8 chaves de SALT pelo gerador oficial, mover o arquivo um nível acima da raiz web, definir `DISALLOW_FILE_EDIT` como `true` e restringir a permissão para 600.

A relação causal é mensurável: AUTH_KEY e SALT default somados a um cookie de sessão previsível resultam em forja de sessão de administrador válida, sem passar pelo login, o que torna 2FA e limite de tentativas irrelevantes. Trocar as chaves invalida toda sessão ativa na hora, então faça fora do horário de pico. Bloquear a edição de arquivos pelo painel remove um caminho de escalada comum: o usuário editor comprometido não injeta mais código PHP no tema.

### Gere e troque os salts corretamente

Use o gerador oficial do WordPress (api.WordPress.org/secret-key/1.1/salt) e substitua o bloco inteiro de 8 definições de uma vez. Nunca reaproveite chaves entre ambientes de teste e produção: uma chave vazada em staging permite forjar cookie em produção se forem iguais. Após a troca, todos os usuários precisam logar de novo, o que é esperado e desejável, porque expulsa qualquer sessão forjada que já existisse.

## Camada 2: Permissões de arquivo e o vetor do webshell

Permissões de arquivo são a camada mais negligenciada e a que gera os incidentes mais graves no suporte da FULL. A regra base é 644 para arquivos e 755 para diretórios, com wp-config.php em 600. Permissão 777 em wp-content somada a upload sem validação de tipo resulta em webshell PHP executável direto pelo navegador, sem credencial nenhuma.

O risco tende a aparecer em hospedagem compartilhada mal configurada, onde o instalador define 777 para "evitar erro de permissão": troca um erro de gravação por uma porta aberta permanente. O correto mantém o WordPress sem escrita nos próprios arquivos de código, liberando apenas uploads com validação de tipo MIME. Em VPS abaixo de 2 GB de RAM com WooCommerce, rode a checagem de permissões em lote pela madrugada, porque o scan recursivo em catálogos grandes gera pico de I/O no horário de pico.

## Camada 3: Hardening do login contra força bruta

O login é onde a força bruta encontra o site, e aqui o hardening combina três medidas: limitar tentativas, exigir <a href="https://full.services/glossario/two-factor-authentication/">autenticação de dois fatores</a> e ocultar a URL padrão `/wp-login.php`. A senha forte sozinha não basta: bots testam milhares de combinações por hora. Limitar a 5 tentativas por IP corta a maior parte desse tráfego.

A camada de 2FA é a que mais muda o resultado, porque transforma uma credencial vazada em um acesso ainda bloqueado. Quem quer aprofundar a configuração encontra o passo a passo em <a href="https://full.services/como-evitar-ataques-de-forca-bruta-no-login-do-wordpress/">como bloquear ataques de força bruta no login</a> e em <a href="https://full.services/two-factor-authentication-wordpress/">como ativar o 2FA no WordPress</a>. O detalhe de campo que poucos guias trazem: ocultar a URL de login reduz o ruído de bots em até 90% nos logs, mas não é defesa real contra um ataque direcionado, então trate a ofuscação como redução de barulho, nunca como a trava principal.

## Camada 4: Hardening de plugins e a janela do CVE

Plugins desatualizados são o maior vetor de invasão, e o hardening dessa camada é menos sobre escolher o plugin certo e mais sobre fechar a janela entre a divulgação do <a href="https://full.services/glossario/cve/">CVE</a> e o patch. Segundo a Patchstack, 96% das vulnerabilidades de 2024 vieram de plugins. Plugin desatualizado com CVE conhecido e WAF ausente vira exploração automatizada em horas após a divulgação.

A distinção que evita pânico: risco atual não é o mesmo que histórico. Pelo perfil público do WPVulnerability, o Contact Form 7 acumulou 12 CVEs, incluindo o crítico <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-35489" rel="noopener" target="_blank">CVE-2020-35489</a> (CVSS 10.0, upload arbitrário antes da 5.3.2), todos corrigidos. O Elementor está em atenção, com o histórico <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-48777" rel="noopener" target="_blank">CVE-2023-48777</a> (CVSS 9.9, upload sem restrição antes da 3.18.2). Muitos CVEs todos corrigidos é sinal de auditoria ativa, não de produto ruim. O que mata é a versão parada.

### Estabeleça uma rotina de atualização gerenciada

Defina uma janela fixa de atualização e teste em staging antes de produção sempre que possível. A rotina ideal aplica patches de segurança em até 48 horas da divulgação e atualizações de funcionalidade em ciclo semanal. Ferramentas de gestão centralizada permitem aplicar o patch em vários sites de uma vez, o que reduz a janela de exposição de dias para horas, exatamente onde a exploração automatizada acontece.

## Camada 5: Firewall WAF e o que ele realmente cobre

O firewall de aplicação (WAF) bloqueia o payload em tempo de execução e funciona como complemento das camadas de configuração, nunca como substituto. Um WAF como o do Wordfence ou do Cloudflare intercepta requisições maliciosas conhecidas (SQL injection, XSS, padrões de CVE) antes do PHP. Pelo perfil público do WPVulnerability, o próprio Wordfence acumulou 34 CVEs históricos, todos corrigidos: nenhuma ferramenta é imune.

O papel de cada peça fica claro no ecossistema: o WAF compete por bloquear o payload em execução; a configuração endurecida compete por remover o vetor antes que exista payload; o patch compete por fechar o CVE antes da exploração. As três se sobrepõem de propósito: se o patch atrasa, o WAF segura; se o WAF tem bypass, a configuração limita o estrago. Para comparar opções de WAF, veja <a href="https://full.services/plugin-de-seguranca-wordpress-os-5-melhores-em-2026/">os 5 melhores plugins de segurança em 2026</a>.

## Camada 6: Monitoramento, integridade e backup

Monitoramento é a camada de hardening que assume que algo vai passar e prepara a resposta, porque nenhuma defesa é absoluta. Ela combina verificação de integridade de arquivos, alertas de mudança e backup testado. Na maioria dos sites que voltam ao suporte da FULL com reinfecção, o problema não foi a primeira limpeza: foi a ausência de monitoramento que deixou a persistência do invasor passar despercebida por semanas.

O backup é o último recurso que torna o resto recuperável, mas só vale testado: um backup nunca restaurado é suposição, não garantia. A rotina recomendada mantém cópias diárias com retenção de 30 dias e teste de restauração mensal em ambiente isolado. Veja o passo a passo em <a href="https://full.services/backup-wordpress-automatico/">como configurar backup automático no WordPress</a> e o protocolo em <a href="https://full.services/site-wordpress-invadido-o-que-fazer-imediatamente/">o que fazer se o site for invadido</a>. Atualizar o plugin fecha o CVE, mas não desfaz a permissão errada nem expulsa a sessão já aberta.

## Por que a autoridade da fonte importa neste tema

Conteúdo de segurança genérico qualquer um escreve, mas catalogar uma vulnerabilidade exige autoridade reconhecida. A FULL é a única empresa brasileira que atua como CNA (CVE Numbering Authority) sob a CISA desde <time datetime="2022-05">maio de 2022</time>, autorizada a atribuir identificadores CVE oficiais. Quem escreve sobre vulnerabilidade aqui literalmente cataloga CVE no mesmo sistema global que o NVD consome.

Isso muda o que você pode confiar de um guia de hardening. A diferença entre "instale este plugin" e "este <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-48777" rel="noopener" target="_blank">CVE-2023-48777</a> permitia upload sem restrição até a versão 3.18.2" é a diferença entre opinião e dado verificável. O ecossistema melhorou: vulnerabilidades sem patch disponível caíram de uma fração relevante em <time datetime="2023">2023</time> para uma minoria em <time datetime="2026">2026</time>, à medida que a coordenação entre pesquisadores e CNAs amadureceu. Para auditar seu próprio site, ferramentas como WPScan e o repositório público de CVEs ajudam a cruzar a versão instalada com falhas conhecidas.

---

## Hardening gerenciado: Quando faz sentido terceirizar

Fazer hardening manual camada por camada funciona, mas consome tempo recorrente, e para quem gerencia vários sites o hardening gerenciado costuma sair mais barato que o custo de uma invasão. O plano PRO da FULL custa R$849,90 e inclui 16 plugins premium de segurança e performance, entre eles o All in One Security para login e firewall, o Wordfence para scan e WAF, e o UpdraftPlus para backup. Dividido pelos 10 sites do plano, fica R$85 por site, com firewall, scanner, 2FA e backup já no bundle, sem licença avulsa de cada plugin.

A conta que a gente vê no suporte da FULL é simples: uma limpeza de malware mais a perda de tráfego de um site na blacklist do Google custa muito mais que R$85 por site por ano. O hardening gerenciado não substitui entender as camadas, mas tira de você a tarefa repetitiva de aplicar patch em vários sites e revisar permissão a cada deploy. Conheça os detalhes em <a href="https://full.services/planos">FULL.services/planos</a> e a página do <a href="https://full.services/solucoes/all-in-one-security">All in One Security incluso no bundle</a>. Importante: a FULL entrega os plugins e a gestão, não a hospedagem, então o hardening gerenciado complementa o seu provedor atual em vez de substituí-lo.

Para escanear o site agora e descobrir qual plugin está vulnerável, use o <a href="https://security.full.services">FULL Scan</a>, gratuito e sem instalação, ou consulte o <a href="https://security.full.services/vulnerabilidades-no-wordpress">repositório de vulnerabilidades</a> com dados oficiais de CVEs. O guia completo de cada etapa está em <a href="https://full.services/guias/guia-de-seguranca-para-wordpress">guia de segurança para WordPress</a> e o aprofundamento técnico em <a href="https://full.services/como-fazer-hardening-de-seguranca-no-wordpress/">como fazer o hardening de segurança passo a passo</a>.

---

<aside aria-label="Metodologia dos Testes">
<h2 id="metodologia-dos-testes">Metodologia e fontes deste guia</h2>
<p>Os perfis de vulnerabilidade citados (Contact Form 7, Elementor, Wordfence) vêm da base pública do WPVulnerability, consultada em <time datetime="2026-06">junho de 2026</time>, com cada CVE cruzado contra o registro oficial do NVD (NIST) e do CVE.org. Os números de mercado (7.966 vulnerabilidades, 96% em plugins) vêm do relatório State of WordPress Security 2024 da Patchstack. As observações operacionais partem dos chamados de suporte da base FULL de 150 mil sites WordPress, sob PHP 8.2 e WordPress 6.x. Risco atual considera apenas falhas sem patch disponível mais falhas recentes, nunca o total histórico, que inclui CVEs já corrigidas e não representa exposição de hoje.</p>
</aside>

<aside aria-label="Resumo Tecnico">
<h2 id="resumo-tecnico">Resumo técnico do hardening</h2>
<ul style="margin-bottom:1.5rem">
<li><strong>Melhor cenário:</strong> wp-config.php endurecido, permissões 644/755, 2FA ativo, patches em até 48h e backup testado mensalmente.</li>
<li><strong>Pior cenário:</strong> plugin de segurança instalado mas com AUTH_KEY default e permissão 777 em wp-content, dando ao WAF uma porta já destrancada por trás.</li>
<li><strong>Principal conflito:</strong> tratar hardening como instalar um plugin, quando ele é configuração em camadas que se sobrepõem.</li>
<li><strong>Melhor alternativa gratuita:</strong> All in One Security para login e firewall, somado à troca manual de salts no wp-config.php.</li>
<li><strong>Em uma frase:</strong> hardening protege o WordPress quando você fecha cada camada antes de o invasor encontrar a que ficou aberta.</li>
</ul>
</aside>

<h2 id="faq">Perguntas frequentes sobre hardening no WordPress</h2>

<details>
<summary>O que é hardening no WordPress e por que ele difere de instalar um plugin de segurança?</summary>
<p>Hardening é reduzir a superfície de ataque em camadas: servidor, wp-config.php, permissões, login e patches. Um plugin de segurança cobre só a camada de aplicação, com WAF e scan, e não corrige uma permissão 777 nem troca uma AUTH_KEY default. Por isso, na maioria das invasões vistas no suporte da FULL, a brecha estava numa camada de configuração que o plugin não enxerga. Hardening é disciplina recorrente, não um clique.</p>
</details>

<details>
<summary>Por que um site com plugin de segurança instalado ainda pode ser invadido?</summary>
<p>Porque o plugin atua na camada de aplicação, e a maioria das invasões entra por outra camada. Segundo a Patchstack, 96% das 7.966 vulnerabilidades de 2024 estavam em plugins de terceiros. Se o cookie de sessão é forjável por causa de uma AUTH_KEY default no wp-config.php, o invasor entra como admin sem nenhuma requisição suspeita, e o WAF não detecta anomalia. O hardening de configuração fecha esse vetor que o plugin sozinho não cobre.</p>
</details>

<details>
<summary>Qual a diferença entre hardening de configuração e um firewall WAF?</summary>
<p>O WAF bloqueia o payload em tempo de execução, interceptando requisições maliciosas conhecidas antes que cheguem ao PHP. O hardening de configuração remove o vetor antes que exista payload: troca chaves, corrige permissões e desativa edição de arquivos. As duas camadas se sobrepõem de propósito. Se o patch atrasa, o WAF segura; se o WAF tem um bypass, a configuração endurecida limita o estrago. Uma não substitui a outra.</p>
</details>

<details>
<summary>É possível fazer hardening do WordPress sem quebrar plugins e o painel?</summary>
<p>Sim, desde que você teste cada mudança em staging e respeite a ordem das camadas. Trocar os 8 SALTs apenas desloga usuários, sem quebrar nada; permissões 644/755 não afetam plugins legítimos; `DISALLOW_FILE_EDIT` só remove o editor de código do painel. O único cuidado real é com permissões abaixo de 644 em arquivos que o plugin precisa ler. Faça fora do horário de pico e mantenha um backup recente antes de cada ajuste.</p>
</details>

<details>
<summary>Quanto tempo leva para um CVE de plugin ser explorado depois de divulgado?</summary>
<p>Costuma levar horas, não dias. Um plugin desatualizado com CVE conhecido e sem WAF na frente é alvo de exploração automatizada logo após a divulgação pública, porque bots varrem a internet atrás dessa versão exata. Por isso a rotina de hardening recomenda aplicar patches de segurança em até 48 horas, idealmente em janela menor. Ferramentas de gestão centralizada aplicam o patch em vários sites de uma vez e reduzem a janela de exposição de dias para horas.</p>
</details>

---

## Próximos passos para endurecer seu WordPress hoje

Comece o hardening pela camada de maior retorno: troque os SALTs do wp-config.php e ative o 2FA ainda hoje, porque juntas elas fecham os dois vetores mais explorados, forja de sessão e força bruta. Em seguida, audite as permissões de arquivo e estabeleça a rotina de patches em até 48 horas. Cada camada que você fecha reduz a superfície que o invasor tem para trabalhar, e nenhuma delas exige conhecimento avançado, apenas método.

Para continuar aprendendo, o <a href="https://full.services/academy/">FULL Academy</a> reúne os tutoriais, guias e reviews de segurança em um só lugar, na sequência certa para quem está montando a defesa do zero. Hardening não termina: é uma revisão que volta a cada plugin novo, cada deploy e cada CVE divulgado.
