O WordPress é um dos CMS mais usados hoje, por isso acabou virando alvo dos hackers, que estão diariamente buscando novas formas de ataques.
Existem algumas medidas que podem ser seguidas para evitar esse tipo de problema. Abaixo listo algumas dicas.
1. Usuários do painel do WordPress
Não tenha nome de usuários como admin ou adm. Escolha um nome diferente.
Uma recomendação do próprio WordPress é ter um usuário apenas para ser o administrador. E esse usuário ser usado apenas quando precisar atualizar o WordPress, plugins ou temas, e editar alguma configuração do site. E ter um outro usuário, com permissão de editor, para criar e editar posts e páginas. Leia o post em nosso guia para WordPress onde falamos sobre usuários.
Uma outra dica, é ter o nome de usuário diferente do nome que aparece na URL da página do autor.
Por padrão, o WordPress gera a página do autor com o nome de usuário, então é fácil saber qual é o nome de usuário, só precisa decifrar a senha.
Infelizmente o WordPress não tem essa opção no painel, para que você possa alterar facilmente. Então precisa entender um pouco mais e fazer a alteração manualmente no banco de dados, na tabela de usuários.
Caso você tenha algum conhecimento, só ir no phpMyAdmin, clicar no banco de dados do seu WordPress, então ir na tabela de usuários (wp_user), e clicar pra editar o usuário. Então altere o nome que tem no campo user_nicename. Escreva o nome todo em minusculo, sem acentos ou cedilha, e use underline ou traço no lugar do espaço em branco.
2. Atualizações
É sempre bom manter o WordPress e plugins atualizados.
Como os hackers vivem achando um novo meio de atacar os sites com WordPress, sempre tem atualizações para melhorias do sistema.
Um tempo atrás era bastante comum ter erros em atualizações, hoje não acontece com frequência, mas por garantia antes de atualizar qualquer coisa, faça um backup do banco de dados e da pasta wp-content no FTP onde está instalado o WordPress.
Note porém que se você utiliza um tema antigo, quando fizer atualizações pode ter problemas se o tema estiver executando funções que não são mais usadas. Por isso o backup é importante.
3. Plugins
Use somente plugins que são realmente necessários.
O que não estiver sendo usado, desative e delete.
Só desativar o plugin não resolve, precisa deletar. Porque quando você só desativa, o plugin ainda está hospedado no seu site, então se é um plugin com alguma falha de segurança, pode ser usado para invadir seu site. Por isso, o recomendado é desativar e deletar.
Vale a pena lembrar que usar mais de um plugin que faz a mesma coisa pode gerar conflitos e invalidar o código do seu site.
E não esqueça de manter os plugins atualizados, mas faça um backup antes de atualizar.
4. Temas
Delete todos os temas que não estão sendo usados.
Assim como os plugins, os temas também podem ser usados por hackers.
Então se não estiver usando, faça um backup para seu computador usando um programa de FTP, e depois delete.
5. Proteção via .htaccess
A instalação do WordPress, em servidor linux, costuma gerar um arquivo com o nome .htaccess. Esse arquivo fica na raiz da onde está instalado o WordPress.
Nesse arquivo pode ser feito algumas configurações para alterar a estrutura das URLs, bloquear spams, proteção de hotlink…
Abaixo listo alguns códigos que podem ser adicionados ao .htaccess se ainda não tiver essa funções.
Antes de editar o .htaccess, faça um backup do conteúdo dele.
Adicione novos códigos no final do conteúdo, dando uns 2 enters entre um código e outro para facilitar a edição mais tarde, caso seja necessário.
Não esqueça de verificar se o arquivo .htaccess já tem essas funções adicionadas. Caso tenha, não adicione novamente.
E qualquer problema que tenha, depois de editar o arquivo, delete tudo e coloque o backup que você fez, de volta. E então comece do zero novamente, fazendo um por um, pra ver o que pode estar gerando problemas.
Evitar ataques via login e comentários
No código abaixo, altere o difluir.com para seu domínio sem www.
# Stop spam attack logins and comments
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
RewriteCond %{HTTP_REFERER} !.*<strong style="color:#f00;">difluir.com</strong>.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L]
</ifModule>
# END Stop spam attack logins and comments
Bloquear acesso ao diretório includes
# Block the include-only files
<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>
# END Block the include-only files
Proteger o arquivo wp-config.php
# Protect wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# END Protect wp-config.php
Bloquear acesso ao arquivo xmlrpc.php
Importante: alguns plugins como o JetPack não funcionam corretamente quando inserido esse código no .htaccess.
# Block XML RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# END Block XML RPC
Proteger o arquivo .htaccess
# Protect htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>
# END Protect htaccess