Nós fizemos uma compilação de recomendações para proteger seu blog em wordpress da maioria do ataques executados por hackers.
Devido ao fato do wordpress ser o sistema de gerenciamento de conteúdo mais utilizado no mundo, é bastante comum que você seja alvo de ataques hackers, força bruta e robôs. Se você não der uma atenção a segurança e manter todas as opções marcadas por padrão, você pode ter um problema de segurança muito sério e acabar sendo hackeado.
As dicas que daremos abaixo são muito fáceis de ser executadas e manterá seu site muito mais seguro.
Dica 1) Não use o prefixo wp_ para o banco de dados
No primeiro momento da instalação do WordPress, você precisa especificar uma série de informações referente a conexão do wordpress com o banco de dados.
Nesse momento você precisará informar o nome do banco de dados, usuário, senha e host do mysql, porém, existe uma outra opção que você pode e deve alterar: o prefixo das tabelas que são criadas para WordPress.
Por padrão, esta configuração já vem escrita como “wp_"
e dessa forma as tabelas serão criadas com esse prefixo, wp_options
, wp_comments
, wp_posts
, etc.
E obviamente, isso é algo que qualquer hacker hoje em dia sabe, e está livre informação que damos a qualquer possível invasor , Pode facilitar muito o processo de invasão do seu site.
Dessa forma, a primeira regrinha básica de segurança é exatamente na instalação do wordpress. Nesta etapa: você precisa mudar o prefixo padrão das tabelas ( wp_
) para um outro de sua escolha, por exemplo , wptabla_
ou T1JM_
ou o que quiser. O importante não é ser longo ou complicado, mas sim, que pelo menos você não deixe a instalação prosseguir com o prefixo padrão.
Dica 2) Não use o usuário admin para acessar WordPress
Outra importante decisão que você precisa tomar durante o processo de instalação do WordPress é o nome do primeiro usuário a acessar a administração do nosso site , o usuário padrão terá gerenciamento total do wordpress, que é o usuário administrador.
Durante anos WordPress ofereceu um nome padrão de usuário (admin), e é claro, você não deve usar esse nome. Portanto, ao escolher o nome do seu primeiro usuário a acessar o WordPress, atente-se para não escolher os nomes mais comuns, como administrador , administrador , root, admin etc.,
Dica 3) Use uma senha forte
Eu sei que parece muito óbvio essa dica, mas acredite, pessoas ainda usam senhas como 123456 ou 123mudar e é claro, os hackers adoram esse comportamento. Uma senha fácil será mais simples de ser memorizada mas também será mais fácil de ser quebrada por scripts de força bruta de ataque.
O WordPress, em suas versões mais recentes, incorpora um gerador de senha segura e isso sempre vai ser a melhor opção. Você pode, no entanto, ignorar essa recomendação e colocar uma senha simples, e insegura, mas você estará cometendo o principal erro de segurança e mais importante.
Aconselha-se usar senhas contendo caracteres maiúsculos e minúsculos, números e pelo menos um carácter especial. Você pode trocar letras por caracteres especiais, ficando mais fácil de guardar.
Veja esse exemplo, a senha “minhacasa” é um senha senha insegura, mas você pode torna-la segura adicionando uma letra maiuscula no inicio, mudando a letra a para @ e adicionando seu dia de nascimento no final. Veja como agora sua senha é bem mai segura e continua fácil de memorizar: Minh@c@s@26
Dica 4) Se proteja da força Bruta de Ataque
Esse tipo de ataque é muito comum em wordpress e visa tentar descobrir a senha de acesso. O problema é que isso pode causar uma extrema lentidão na sua instalação de wordpress, além, claro, de expor o site ao risco de ter a senha descoberta.
A boa notícia, é que basta instalar um plugin de proteção de Brute Force Attack, para que esse problema seja resolvido.
Nós aconselhamos o uso do plugin Loginizer Security. Ele é muito completo e bloqueia o ip do usuário após um número de tentativas de acesso ao wp-admin, quando ocorrem erro de senhas consecutivas. Para instala-lo basta pesquisa pelo nome do plugin no repositório do wordpress ou acessa-lo no link https://br.wordpress.org/plugins/loginizer/
Dica 5) Mantenha sempre seu WordPress e plugins atualizado
Essa é uma vulnerabilidade muito explorada. Hackers atacam frequentemente sites de versões mais antigas ou desatualizados , uma vez que são mais vulneráveis ao não incorporar proteção suficiente para o ataque conhecido.
Felizmente, o WordPress oferece um sistema de atualização automática tanto para WordPress e também para os plugins instalados, e basta alguns cliques para que seu site/blog seja atualizado.
Porém, sempre que for atualizar, é fundamental gerar um backup antes do procedimento
Dica 6) utilize temas e plugins apenas de sites seguros
O local mais seguro para baixar plugins e temas é o diretório local oficial do wordpress, garantindo assim versões atualizadas. São os temas e plugins que podem ser instalados a partir do instalador já incluso na administração do seu WordPress, e você também pode visitar o seguinte endereço para baixa-los
Dica 7) Proteger o arquivo de configuração do WordPress
O arquivo de configuração do WordPress, o wp-config.php contém informações muito sensíveis sobre seu servidor:
- nome do banco de dados
- nome do usuário de acesso ao banco
- senha do usuário
- prefixo das tabelas do banco de dados.
Por esta razão que é fundamental proteger esse arquivo para evitar acessos indevidos e claro, alterações indesejadas.
Para isso, você pode executar as seguintes ações:
- Mover para uma pasta superior, de modo que se ele não fique localizado na mesma pasta de instalação. Exemplo: se seu blog está instalado em …/public_html/blog/ você deve mover o arquivo wp-config.php para a pasta …/public_html/
- Alterar as permissões do arquivo para 444.
- Adicionar as seguintes regras no arquivo .htaccess (esse arquivo geralmente fica dentro da pasta …/public_html/) do apache, para impedir o acesso indesejado:
1234<Files wp-config.php>order allow,denydeny from all</Files>
Dica 8) Restringir o acesso a pasta wp-includes
A pasta wp-includes contém apenas os arquivos que são estritamente necessários para executar a versão principal do WordPress, sem plugins e temas.
Lembre-se de que o tema padrão está em outro diretório wp-content/theme e também precisa de atenção para segurança.
Dessa forma, nenhum visitante (incluindo você) deve possuir acesso ao conteúdo da pasta wp-include.
Você pode desabilitar o acesso adicionado os comandos abaixo no arquivo .htaccess na raiz da instalação do wordpress:
1 2 3 4 5 6 7 8 9 10 |
#Bloquear acesso a pasta e arquivos wp-includes <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> |
Dica 9) Desativar a navegação de diretório
Esta é uma das falhas de segurança mais importantes em um site do WordPress. Por padrão, o servidor web Apache habilita a navegação no diretório. Isto significa que todos os arquivos e pastas dentro do diretório root (às vezes chamado de diretório home, www ou puclic_html) do servidor web podem ser listados e acessados pelo visitante. Você não quer que isso aconteça com certeza.
Isso permite que qualquer pessoa vasculhe seus arquivos e facilmente encontre a pasta wp-content/uploads ou qualquer outro diretório que não tenha o arquivo index.php padrão. Veja a imagem abaixo que mostra exatamente essa vulnerabilidade:
Para resolver esse problema, adicione o código abaixo no .htaccess da pasta raiz da instalação do wordpress:
1 2 |
#Desativar a navegação no diretório Options All -Indexes |
Dica 10) Permitir apenas arquivos selecionados do wp-content
Como você deve saber, a pasta wp-content contém a maioria dos seus temas, plugins e todos os uploads de mídia. Você certamente não quer que as pessoas acessem esses arquivos sem restrições.
Basicamente, você precisa especificar e desbloquear arquivos como JPG, PDF, DOCX, CSS, JS, etc e negar o resto. Para fazer isso, adicione o código abaixo no arquivo .htaccess:
ATENÇÃO: Esse código deve ser colocado no arquivo .htaccess que está dentro da pasta wp-content e nao no arquivo .htaccess que está na pasta raiz de instalação. Se a pasta wp-content não possuir um .htaccess, você deve cria-lo dentro dessa pasta
1 2 3 4 5 6 |
#Desativar acesso a todos os tipos de arquivo, exceto o seguinte Order deny,allow Deny from all <Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$"> Allow from all </Files> |
Dica 11) Proteger os arquivos .htaccess
Da mesma forma que você protegeu o arquivo wp-config.php é necessário proteger também o arquivo .htaccess.
Para negar o acesso a todos os arquivos .htaccess (lembre-se que alguns podem residir no wp-admin e em outras pastas), adicione o código abaixo dentro de todos os arquivos .htaccess do seu blog:
1 2 3 4 5 6 |
#Negar acesso a todos os arquivos .htaccess <files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files> |
Dica 12) Negar Imagem Hotlinking
Esse é um dos mais legais hacks de arquivos .htaccess. Quando alguém usa a imagem do seu site, sua largura de banda está sendo consumida e na maioria das vezes, seu site/blog nem sequer recebe os crédito pela imagem. O código abaixo elimina esse problema e envia essa imagem quando um hotlink é detectado.
1 2 3 4 5 6 |
#Evitar script hotlinking de imagem. Substitua o último URL por qualquer link de imagem desejado. RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?seusite.com.br [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?seusite.com.br [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L |
Dica 13) Ativar cache do navegador
Também conhecido como cache do lado do cliente, esse código habilita as opções de cache do navegador, recomendadas para o site do WordPress. Você também pode usá-lo em outros projetos , como sites em html dentre outros.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#Carregar o cache do navegador <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule> |
Dica 14) Permitir somente endereços IP selecionados para acessar wp-admin
A pasta wp-admin contém os arquivos necessários para executar o painel administrativo do WordPress. Na maioria dos casos, seus visitantes não precisam acessar o painel do WordPress, a menos que queiram registrar uma conta e essa opção esteja habilitada.
Uma boa medida de segurança é permitir que apenas alguns endereços IP selecionados acessem a pasta wp-admin.
Você pode permitir que apenas os IPs das pessoas que precisam acessar o painel do WordPress – editores, contribuidores e outros administradores. Esse código deve ser adicionado no .htaccess e ele irá permitir que apenas IPs fixos acessem a pasta wp-admin e nega acesso ao resto do mundo.
1 2 3 4 5 6 7 |
#Limitar logins e admin por IP <Limit GET POST PUT> order deny,allow deny from all allow from 302.143.54.102 allow from IP_ADDRESS_2 </Limit> |
Certifique-se de criar um novo arquivo .htaccess e colá-lo na pasta wp-admin e não no diretório raiz de instalação do wordpress.
Se você errar e colocar esse código no .htaccess da pasta raiz, ninguém, exceto você, será capaz de navegar no site, nem mesmo os motores de busca! Você certamente não quer que isso aconteça.
Essa medida e muito útil, porém, existem alguns problemas que podem dificultar a utilização dela:
- Se o seu site permite ou promove o novo registro de usuários, seria quase impossível acompanhar o número de usuários e adicionar o ip de cada um deles para que eles possam ter acesso ao paineldo wordpress.
- Pessoas com endereços IP dinâmicos (principalmente usuários de banda larga ADSL usando protocolos PPP ou PPPoE) têm seus IPs alterados, cada vez que saem e se logam no ISP. Certamente não seria prático acompanhar todos esses IPs e adicioná-los ao arquivo htaccess a cada nova conexão.
- Banda larga móvel: Se você está usando uma conexão 3G ou 4G, seu endereço IP depende da torre de célula atual que você está conectado. Digamos que você está viajando – seu IP estará constantemente mudando pelas cidades que você passar. Novamente, manter o controle para o arquivo .htaccess é quase impossível.
Felizmente, todas essas desvantagens (exceto a primeira), pode ser corrigido usando uma VPN. Se você definir sua VPN para se conectar usando apenas um único endereço IP, então você pode apenas adicioná-lo ao seu arquivo .htaccess, e todos os seus problemas serão resolvidos.
Se apenas você acessa o wp-admin, ê não possui iop fixo, você pode também bloquear e toda vez que precisar acessar o wp-admin, acessa primeiro o FTP e atualiza seu ip. Eu sei que isso vai dar um trabalhinho, mas nada que se compare com a eficiência dessa medida, em relação a camada extra de segurança que seu wordpress terá.