Neste artigo, vamos falar sobre os tipos mais comuns de ataques ao WordPress, como identificá-los e os diferentes métodos para os resolver. Se encontrares um problema deste tipo, recomendamos vivamente que contactes um programador web profissional para obteres mais ajuda. Para orientação adicional sobre como melhorar a segurança da tua conta de alojamento, consulta este guia.
IMPORTANTE: Antes de fazeres quaisquer alterações, cria uma cópia de segurança completa do teu site.
ATENÇÃO: Para reduzir o risco de futuros ataques ao WordPress, faz regularmente uma análise à tua conta de alojamento com uma ferramenta antivírus, remove quaisquer ficheiros maliciosos ou suspeitos e mantém todos os plugins e temas do teu site atualizados para as versões mais recentes.
Embora vários problemas diferentes possam levar ao desaparecimento ou alteração de ficheiros padrão, a causa mais comum é a presença de malware injetado na tua instalação do WordPress. Felizmente, as ferramentas antivírus nos nossos servidores Web e de Alojamento conseguem detetar e colocar automaticamente em quarentena os ficheiros comprometidos.
Se os ficheiros principais do teu WordPress forem infetados, podes encontrar sintomas como:
Uma página em branco;
Um erro 500 Internal Server Error;
Um “Este site está a ter problemas técnicos” (introduzido no WordPress 5.2.2);
Ou outros erros semelhantes.
Para resolver este problema, basta seguires os passos abaixo.
Para identificares o que causou o problema no teu site, revê o ficheiro error_log. Este ficheiro regista todos os erros críticos que o teu site encontra.
Podes encontrá-lo na tua conta cPanel > menu “Gestor de Ficheiros” > diretório raiz da tua instalação do WordPress.
Depois de acederes à pasta raiz do domínio, procura o ficheiro error_log. Se existir, segue estes passos:
Clica com o botão direito no ficheiro e seleciona Ver:

Dentro do log, podes ver um erro como: “No such file or directory in…”, seguido do caminho do ficheiro em falta. Isto indica que um ficheiro necessário está ausente e está a impedir o site de funcionar corretamente.
Por exemplo:/home/cPuser/public_html/wp-settings.php

Para restaurar o ficheiro em falta, desce até à secção "Como substituir os ficheiros em falta" deste guia.
Se o ficheiro error_log não estiver disponível no diretório raiz do teu site, podes ativar a opção PHP display_errors na tua conta cPanel. Esta definição permite que as mensagens de erro apareçam diretamente no teu site, facilitando a identificação do problema.
Importante: Por motivos de segurança, certifica-te de desativar o display_errors assim que terminares a resolução do problema.
Podes ativar a opção PHP das seguintes formas:
Via php.ini
Além do menu “PHP Tweaks” do cPanel, também podes ajustar certas definições de um site diretamente através de um ficheiro php.ini, adicionando/editando as linhas correspondentes.
Para ativar a opção display_errors, precisas de adicionar a seguinte linha ao ficheiro: display_errors=1
Podes criar um novo ficheiro php.ini na pasta raiz do site e adicionar lá a linha, ou modificar o ficheiro gerado pelo sistema seguindo os passos abaixo.
Entra na tua conta cPanel e vai ao menu “Gestor de Ficheiros”.
Certifica-te de que a opção “Mostrar ficheiros ocultos (dotfiles)” está ativada nas definições:

Navega até ao seguinte diretório: /home/cPanel_user/.system-php/ini

Seleciona a versão do PHP atribuída ao teu domínio e depois seleciona o diretório do domínio. Por exemplo, o caminho completo pode ser:
/home/cPanel_user/.system-php/ini/7.0/testwebsite.com
Clica com o botão direito no ficheiro php.ini e seleciona Editar.
Adiciona a seguinte linha ao ficheiro: display_errors=1
Via .htaccess
Para ativar a opção PHP display_errors via ficheiro .htaccess, tens de editar o ficheiro dentro do diretório raiz do site no “Gestor de Ficheiros” e adicionar lá a seguinte linha:php_value display_errors 1
Os passos detalhados para localizar o ficheiro .htaccess podem ser encontrados neste artigo.
Depois de fazeres as alterações, clica em Guardar.
O WordPress utiliza uma estrutura de ficheiros simples e organizada, o que torna relativamente fácil restaurar ficheiros em falta ou corrompidos. Recomenda-se vivamente a substituição dos ficheiros principais, pois garante que quaisquer ficheiros comprometidos por malware sejam totalmente restaurados. No entanto, procede com cautela: substituir certos ficheiros ou pastas pode resultar em perda de dados se não for feito corretamente.
Segue os passos abaixo para substituir ficheiros WordPress em falta:
Entra no teu cPanel e vai a Softaculous Apps Installer.
Cria uma nova instalação do WordPress numa subpasta temporária. Para isso, clica no ícone WordPress e depois seleciona Instalar:

Serás redirecionado para a página de definições da instalação. Lá, seleciona o nome do domínio em questão no menu suspenso e introduz o nome de uma subpasta no campo No Diretório.
Neste exemplo, usamos a subpasta ” fix” para a instalação do WordPress:

NOTA: Substituir todos os ficheiros padrão irá atualizar a tua instalação existente para a versão usada na instalação temporária “fix”, e misturar ficheiros de versões diferentes pode causar conflitos de sistema e quebrar a funcionalidade do site.
Se for importante manter a tua versão atual do WordPress, ou se planeias substituir apenas ficheiros específicos, verifica a versão do teu site dentro do ficheiro /wp-includes/version.php , e certifica-te de que a nova instalação usa a mesma versão do WordPress:

Podes escolher a versão do WordPress para a nova instalação diretamente na janela de instalação:

Depois de todas as definições estarem configuradas, clica em Instalação Rápida ou desce até ao fundo da página de instalação e clica em Instalar.
Depois de concluída a nova instalação do WordPress, os ficheiros vão aparecer no “Gestor de Ficheiros” > diretório raiz do teu domínio. Abre a pasta fazendo duplo clique nela:

Para substituir um ficheiro específico em falta (por exemplo, wp-settings.php), localiza esse ficheiro dentro do diretório da nova instalação.
Depois disto, move o ficheiro para o diretório raiz atual do teu site clicando com o botão direito no ficheiro > clica em Mover > introduz o caminho para a pasta raiz do teu site > clica em Mover ficheiro(s):

Depois de concluído, o ficheiro em falta foi restaurado e o teu site deverá carregar corretamente.
No processo de substituição de todos os ficheiros padrão do WordPress de um site, os passos 1-6 são iguais aos da secção “Como substituir ficheiros WordPress em falta”.
Depois de concluíres estes passos e criada a nova instalação do WordPress, para substituir todos os ficheiros padrão na pasta raiz do teu site, segue estes passos:
Abre a pasta raiz da nova instalação do WordPress:

Dentro da nova pasta de instalação, apaga os seguintes ficheiros e pastas:

.htaccess
wp-config.php
wp-content
Estes ficheiros e pastas contêm a configuração e o conteúdo do teu site e devem permanecer inalterados.
Depois, move os ficheiros restantes para o diretório raiz do teu site principal. Para isso, usa o botão Selecionar Tudo > clica em Mover > introduz o caminho para a pasta raiz do teu site > clica em Mover ficheiro(s):

Os ficheiros principais do WordPress foram totalmente substituídos. Visita o teu site para confirmar que tudo carrega corretamente.
Se o site continuar a apresentar erros, verifica novamente o error_log. Na maioria dos casos, problemas adicionais são causados por ficheiros de temas ou plugins em falta.
A ausência de ficheiros de tema ou plugin pode ocorrer por várias razões, mas a causa mais comum é malware que infeta e remove componentes essenciais da tua instalação do WordPress.
Se algum ficheiro de plugin ou tema do teu WordPress estiver em falta, podes encontrar:
Uma página em branco;
Um erro 500 Internal Server Error;
Um “Este site está a ter problemas técnicos” (introduzido no WordPress 5.2.2);
Uma página parcialmente carregada ou visualmente “quebrada”.
Para ajuda no diagnóstico do problema, consulta as seguintes secções deste artigo: Verifica o ficheiro error_log do teu site e Ativa a opção PHP display_errors.
Podes ver mensagens de erro semelhantes às seguintes no teu error_log ou diretamente no site:
PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...
Abaixo está um exemplo de erro causado por um ficheiro de plugin corrompido ou em falta:

Para restaurar o ficheiro em falta, basta reinstalar o tema ou plugin afetado.
NOTA: Ficheiros functions.php em falta nos temas estão frequentemente ligados ao malware wp-vcd.php, normalmente localizado no diretório /wp-includes. Antes de instalares um novo tema, remove wp-vcd.php se existir ou, se quiseres garantir total segurança, substitui todos os ficheiros padrão do WordPress conforme descrito anteriormente.
Em alguns casos, quando o teu site é infetado com malware, pode começar a redirecionar visitantes para páginas perigosas ou suspeitas. Este problema é normalmente causado por um plugin ou tema inseguro, que permite a atacantes alterar URLs na base de dados ou modificar ficheiros do site.
NOTA: Nunca cliques em nenhum dos links redirecionados. Isso pode infetar o teu computador pessoal com malware:

Para corrigir redirecionamentos maliciosos, segue os passos abaixo:
Localiza um ficheiro de configuração da base de dados do teu site - wp-config.php no teu cPanel > Gestor de Ficheiros > pasta raiz do site. Abre o ficheiro e encontra lá o nome da base de dados do site:

Depois, abre a base de dados atribuída ao teu site no menu phpMyAdmin do cPanel clicando nela e navega até à tabela wp_options (“wp_” é o prefixo padrão; o teu pode ser diferente):

Revê os valores dos campos siteurl e home e, caso vejas URLs maliciosos ou suspeitos, substitui-os pelo teu domínio real:

Analisa o resto da base de dados à procura de URLs maliciosos semelhantes e substitui-os em conformidade.
Substitui temporariamente o teu .htaccess atual por uma versão padrão limpa. O ideal é renomear o ficheiro existente (por exemplo, .htaccess_old) e criar um novo de raiz.
Para renomear o ficheiro, faz duplo clique nele > seleciona Renomear na lista > introduz um novo nome > e carrega em Renomear ficheiro.
Depois disso, para criar um novo ficheiro, clica em + Ficheiro > dá-lhe o nome .htaccess > e seleciona Criar Novo Ficheiro.
Depois de criado o novo .htaccess, edita-o clicando com o botão direito > seleciona Editar na lista. Quando a janela de edição abrir, cola as seguintes regras padrão do WordPress no ficheiro:# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress
Clica em Guardar Alterações.
Se o teu site continuar a redirecionar, tenta substituir todos os ficheiros principais do WordPress.
Também podes desativar temporariamente todos os plugins através do painel do WordPress ou da base de dados e tentar ativá-los um a um. Depois de cada plugin ativado, verifica o site para detetar qual deles causa o problema de redirecionamento malicioso.