Definir corretamente as permissões para as pastas e arquivos é necessário, pois assim você impede que os arquivos sejam acessados e as informações confidenciais sejam obtidas.
iThemes Security
Um dos melhores e mais usados plugins de segurança. Receba alertas via email, bloqueie IP's e tentativas frustradas de logon, bloqueie usuários, realize backup do banco de dados, altere o caminho de acesso a sua administração e muito mais.
Download: https://wordpress.org/plugins/better-wp-security/
Ou direto pelo WP.
Atualizações
Temas também podem ser a porta de entrada para as invasões, por isso é fundamental manter seu tema sempre atualizado, pois conforme as versões do WordPress são atualizadas, algumas funções podem se tornar obsoletas e outras podem ser adicionadas.
Atualizar a versão de seu WordPress é adicionar mais ao fator proteção, pois cada atualização traz novas implementações de segurança, além de trazer novas funcionalidades de edição e publicação. Não se esqueça de sempre fazer uma cópia de segurança de seu banco de dados e arquivos.
Boas práticas de login e senha
Por defeito, o nome de utilizador/login é “admin”… e é verdade que a quase totalidade dos donos de blogs deixam ficar esse nome de utilizador… e os hackers também sabem isso. Por isso, mude o seu nome de utilizador para algo diferente, e tenha o cuidado de não escolher palavras óbvias ou variações do seu nome ou iniciais.
Tenha uma senha forte Os hackers vão tentar descobrir a sua senha utilizando programas de “brute force”… basicamente, o programa vai correr uma biblioteca com várias palavras e combinações de palavras até encontrar a sua senha. Escolha por isso uma senha com combinações de números, símbolos e letras (maiúsculas e minúsculas).
Altere as WordPress Keys no wp-config.php
Visite o WordPress Key Generator para criar novas chaves de segurança.
Abra o seu ficheiro wp-config.php e encontre as seguintes linhas de código e substitua-as pelas novas que foram criadas.
define(‘AUTH_KEY’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
define(‘NONCE_KEY’, ‘put your unique phrase here’);
https://api.wordpress.org/secret-key/1.1/
Robots.txt
Este ficheiro dá indicações aos spiders dos motores de busca (e outros programas que se fazem passar por eles), impedindo-os de acederem a determinadas partes do seu blog. Crie um ficheiro “robots.txt” no seu diretório base (root) e coloque o seguinte código dentro dele:
# user-agent: *
Disallow: /cgi-bin
Disallow: /wp-*
.htaccess
Vamos criar vários ficheiros .htaccess para oferecer mais uma camada de proteção ao blog.
Criar um ficheiro .htaccess no seu directório base (root)
Adicione o seguinte código ao ficheiro para o proteger:
# STRONG HTACCESS PROTECTION</code>
<Files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>
Adicione o seguinte código para não permitir que os visitantes do blog possam navegar pelos diretórios do blog:
# disable directory browsing
Options All -Indexes
Adicione o seguinte código para proteger o ficheiro wp-config.php
# protect wp-config.php
<files wp-config.php>
Order deny,allow
Deny from all
</files>
Adicione o seguinte código para prevenir a injeção de código malicioso por sql e modificações não desejadas do _REQUEST e GLOBALS:
# protect from sql injection
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
Limite o Número de Tentativas de Login
Às vezes o hacker pode saber parte de sua senha (ou achar que sabe) ou desenvolver um script que irá ficar tentando combinações até o final dos tempos ou conseguir entrar. Neste caso, uma boa ideia é limitar o número de tentativas de logins.
Você pode fazer isso facilmente usando um plugin para WordPress chamado Limit Login Attempts. Este plugin irá bloquear o usuário se ele tentar a senha errada mais vezes do que o permitido. O invasor será bloqueado por um tempo específico. Até mesmo um minuto pode atrapalhar os planos do hacker de tentar entrar usando infinitas combinações, aumentando o tempo necessário de forma inviável.
Todos os parâmetros do plugin são plenamente configuráveis (número de tentativas, mensagem, tempo de bloqueio…).
Proteja com Senha o Diretório WP-Admin
O que pode ser melhor do que uma senha de acesso? Duas senhas de acesso. Pelo cPanel configurar usuario e senha para acessar pasta wp-admin.
Proteção Antivírus Para WordPress
Se um antivírus é bom para o seu computador, por que não para o seu WordPress? O plugin AntiVirus é uma solução inteligente e eficiente para proteger o seu site ou blog contra vulnerabilidades e injeções não autorizadas de conteúdo.
Este plugin analisa diariamente o conteúdo da sua instalação em busca de arquivos maliciosos ou corrompidos e avisa por email se encontrar algo fora do normal. Você também pode começar uma análise manual e obter resultados imediatos, quando quiser.
https://wordpress.org/plugins/antivirus/
Mais uma vez, vale a pergunta: “se funciona para seu PC, por que não para seu WordPress”? Com o plugin WordPress Firewall Plugin você tem em mãos um sistema de segurança capaz de detectar, interceptar e registrar qualquer parâmetro suspeito antes que ele comprometa seus dados no WordPress. Este plugin também protege a maioria dos plugins de WordPress da mesma forma.
Você pode querer configurar este “firewall” para ser o primeiro plugin a carregar da sua instalação para obter segurança máxima. Outra funcionalidade interessante é sua habilidade de enviar um email para você detalhando todas as informações de um ataque potencial evitado.
Plugins recomendados
https://wordpress.org/plugins/better-wp-security/
https://wordpress.org/plugins/hide-login/
http://www.askapache.com/wordpress/htaccess-password-protect.html
Scan online
Ótima ferramenta para analise: https://sitecheck.sucuri.net/
Captcha
Também recomendo que utilize em todos os formulários de contato, login, comentários a utilização do captcha.