Publicado em Deixe um comentário

Como Garantir a Segurança do WordPress

Защита wordpress

Divulgação: Este site pode conter links afiliados. Se você fizer uma compra por meio desses links, poderei receber uma comissão sem nenhum custo adicional para você. No entanto, todas as opiniões são minhas.

O WordPress é tão popular que um número crescente de desenvolvedores está criando temas e plugins prontos para uso. Embora a maioria desses recursos facilite a operação do seu site e expanda sua funcionalidade, alguns podem conter vírus ou abrir portas para hackers. Este artigo ajudará a minimizar o risco de seu site ser invadido e ensinará a estar preparado para qualquer situação.

Escolha de hospedagem para WordPress

Se você está lendo este artigo, significa que já possui um serviço de hospedagem. E recomendar algo agora seria tarde demais 🙂 Lembre-se para o futuro: a escolha de uma hospedagem NÃO deve ser baseada apenas no preço. Recomendo prestar atenção aos provedores de hospedagem mencionados na revisão em https://dieg.info/vps-hosting/.

Atualmente, o serviço de hospedagem gerenciada para WordPress está ganhando popularidade. Se você adquiriu esse serviço, isso significa que não precisa ler o restante deste artigo. A maioria das etapas descritas abaixo já foi implementada pelo suporte técnico ou será configurada a seu pedido.

Regra 1: É o servidor da Web que deve estar em execução, não o WordPress

Atualmente, prefiro configurar o pacote Nginx+PHP-FPM para o WordPress, sem um painel de controle de hospedagem. Portanto, este artigo fornecerá o código para configurar o Nginx; para o Apache e o LiteSpeed, você pode encontrar códigos semelhantes na Internet. Caso tenha gerenciado a hospedagem do WordPress e não tenha acesso às configurações do servidor da Web, entre em contato com o suporte técnico do seu provedor de hospedagem.

O que quero dizer com a afirmação: é o servidor da Web que deve funcionar, não o mecanismo do WordPress? Todas as solicitações de usuários que o servidor da Web pode atender devem ser atendidas por ele, não pelo WordPress. Qualquer solicitação ao seu site gera uma carga sobre ele. Quanto maior a carga, pior o desempenho de seu site. Em geral, minha recomendação ajudará a remover a carga dos plug-ins de armazenamento em cache, plug-ins de segurança, ou seja, não apenas acelerará seu site, mas o tornará mais seguro. Portanto, o servidor da Web deve ser otimizado para trabalhar com o WordPress, e não o contrário. O WordPress é uma plataforma poderosa, mas pode exigir muito dos recursos. Se o seu servidor da Web não for otimizado para trabalhar com o WordPress, isso pode levar a problemas de desempenho e acessibilidade.

Vamos analisar minha recomendação com o exemplo mais simples para entender como seu site no WordPress ou em outro CMS se tornará mais seguro e mais rápido. Portanto, os arquivos readme.html e license.txt estão localizados na pasta raiz de qualquer instalação do WordPress. Esses são apenas arquivos de texto que não afetam a operação do WordPress de forma alguma; é recomendável excluí-los imediatamente após a instalação. Você não precisa desses arquivos, mas eles ajudam os hackers a descobrir a versão atual do seu WordPress e muitas outras coisas úteis para invadir um site.

Como você pode ver, a recomendação é correta e aparentemente simples de implementar. Mas os mesmos arquivos txt também estão nos diretórios de plug-ins. Portanto, você precisa excluí-los lá também. E depois de atualizar o plug-in, eles aparecerão novamente. Além disso, a carga de solicitações de hackers em seu site pode tornar o trabalho dele significativamente mais lento. Esse problema é elegantemente resolvido em qualquer servidor da Web, por exemplo, no Nginx, o código proíbe o acesso a arquivos com extensão log, txt, sql em qualquer diretório do seu site.

location ~ \.(log|txt|sql)$ { deny all; access_log off; log_not_found off;}

Protegemos seu site com essa linha de código. A próxima linha de código também acelerará seu site ao negar o acesso ao arquivo xmlrpc.php, que é usado para acesso remoto ao seu site:

location = /xmlrpc.php { deny all; access_log off; log_not_found off;}

Regra 2: Ative a atualização automática do motor, plugins e temas

Se você não quer atualizar o WordPress porque fez alterações nos arquivos, é melhor criar um tema filho, transferir as alterações para ele e ainda assim habilitar as atualizações.

Desde a versão 5.5, o WordPress possui um recurso integrado para atualizar automaticamente temas e plugins.

  1. Para ativar a atualização automática de temas: Vá em “Aparência” -> “Temas”, passe o mouse sobre o tema desejado, clique em “Informações do tema” -> Ativar atualizações automáticas.
  2. Para ativar a atualização automática de plugins: Vá até a seção “Plugins” e ative a atualização automática para o plugin desejado.

Se você tem softwares no seu site que não são compatíveis com versões mais recentes do WordPress, plugin ou tema, você pode habilitar atualizações automáticas seletivas.

Regra 3: Não use templates nulled para WordPress

Produtos nulled são cópias piratas de temas e plugins pagos, distribuídos ilegalmente na internet.

Resumindo, no final, você pagará mais ao desenvolvedor para limpar seu site de códigos maliciosos do que economizaria instalando um template ou plugin nulled.

Regra 4: Faça backup dos seus dados com a maior frequência possível

Mesmo os maiores sites são invadidos todos os dias, apesar de seus proprietários gastarem milhares para melhorar a segurança do WordPress.

Nem todos os ataques podem ser prevenidos, mas apenas um ataque bem-sucedido pode destruir todo o esforço dedicado ao seu site. Recomendamos que você faça backups regulares do seu site.

Atenção
Muitas empresas de hospedagem oferecem a opção de backups de servidor GRATUITAMENTE e tudo parece estar bem! Mas, no momento, não conheço nenhum provedor de hospedagem onde o serviço de backup funcione corretamente, ainda mais de GRAÇA! Talvez eu esteja sendo excessivamente exigente, mas se você teve alguma experiência com a restauração real de um site a partir de um backup do provedor – escreva-me nos comentários. DICA: Não acredite nos marqueteiros do seu provedor de hospedagem escolhido, e conduza o teste de restauração do site você mesmo!

Existem várias maneiras de criar backups. Você pode baixar manualmente os arquivos do site e exportar o banco de dados, ou, como escrevi anteriormente, usar as ferramentas oferecidas pelo seu plano de hospedagem (não usei a palavra plano à toa — um alô para os marqueteiros). Outra maneira é usar plugins do WordPress, por exemplo:

  • BulletProof Security — um plugin muito interessante tanto para proteção do site quanto para backups.
  • WordPress Database Backup — as configurações do plugin permitem definir a opção de envio diário de uma cópia de segurança do banco de dados para o seu e-mail de contato.

Existem muitos plugins de segurança especializados desenvolvidos para WordPress. Você pode encontrá-los em https://wordpress.org/plugins/tags/backup/.

Protegendo seu site WordPress, recomendações

Remova todos os plugins, temas e arquivos desnecessários.

Sinta-se à vontade para excluir todos os plug-ins, temas e arquivos não utilizados. Os hackers costumam usar modelos e plug-ins desativados e desatualizados (até mesmo plug-ins oficiais do WordPress) para obter acesso ao seu painel de controle ou fazer upload de conteúdo mal-intencionado para o seu servidor. Ao remover plug-ins e modelos que você parou de usar, você reduz os riscos e torna seu site WordPress mais seguro.

Por exemplo, você instalou plug-ins para testar e selecionar o que vai usar. Uma vez selecionado, lembre-se de remover os desnecessários.

  1. Remover plug-ins não utilizados.
  2. Remova os temas não utilizados. Você deve ter no máximo três temas: o primeiro que usar em seu site, seu tema filho e o tema Twenty One (o último tema oficial do WordPress para 2021). O Twenty One deve ser mantido para que, em caso de falha (a tela branca geralmente aparece devido a erros de PHP, especialmente se você tiver um tema personalizado ou plug-ins) do seu tema principal, você possa alternar para o Twenty One e corrigir os problemas.

Como ocultar a versão do WordPress, scripts e estilos

Por padrão, o WordPress adiciona o número da versão atual ao código-fonte de seus arquivos e páginas.

<meta name="generator" content="WordPress 5.7.1" />
<meta name="generator" content="WooCommerce 5.2.2" />

Muitas vezes, nem sempre é possível atualizar a versão do WordPress a tempo, o que pode ser um ponto fraco do seu site. Sabendo qual versão do WordPress você tem, um hacker pode causar muitos danos. Para evitar que as informações sobre a versão de sua plataforma sejam exibidas, adicione uma linha ao seu arquivo functions.php:

remove_action('wp_head', 'wp_generator');

Eu uso o plug-in Clearfy Pro, que tem configurações para:

  1. Remove a meta tag da seção de cabeçalho. Permite que os invasores descubram a versão do WP instalada no site. Essa meta tag não tem nenhuma função útil.
  2. Remove as versões dos estilos. O WP, os temas e os plug-ins geralmente incluem estilos com a versão do arquivo, do plug-in ou do mecanismo, com a seguinte aparência ?ver=4.7.5. Essa conexão permite que os invasores saibam a versão do plug-in ou do mecanismo. Além disso, nem todos os servidores proxy e serviços CDN podem armazenar em cache arquivos com o parâmetro ver no final do endereço, o que aumenta o tempo de carregamento da página de seu site.
  3. Exclui versões de scripts. Assim como acontece com os estilos, os scripts são conectados à versão do arquivo, plug-in ou mecanismo, da seguinte forma: ?ver=4.7.5.

Como ativar a autenticação em duas etapas no WordPress

A autenticação de dois fatores é um método de proteção de conta baseado na aplicação dos seguintes dois fatores: informações conhecidas apenas por você (senha) para entrar no sistema e o seu dispositivo físico (dispositivo móvel ou chave).

Depois de inserir a senha no site, um pedido de uma nova senha de uso único é enviado para você, que você recebe no seu número de telefone de contato ou e-mail (possivelmente clicando em um link específico no e-mail). Portanto, mesmo que sua senha principal seja comprometida, um hacker não conseguirá acessar a conta sem acesso ao seu telefone ou e-mail.

Plugins populares de verificação em duas etapas para WordPress:

  • Keyy Two Factor Authentication permite que você não memorize uma senha, mas use a varredura de um código QR para entrar.
  • Google Authenticator oferece autenticação de dois fatores usando o aplicativo Google Authenticator para Android / iPhone / BlackBerry.

Utilize credenciais de login não padrão

Não use um nome de usuário como admin. É altamente recomendável que você altere seu nome de usuário de administrador para outro.

A maneira mais fácil de configurar um login é quando você instala o WordPress. Mas se você já o tiver instalado, crie uma nova conta de administrador com dados diferentes.

  1. Faça login no painel de controle do WordPress
  2. Localize a seção “Usuários” e clique em “Adicionar novo”.
  3. Crie um novo usuário e dê a ele direitos de administrador.
  4. Entre novamente no WordPress com seus novos dados.
  5. Volte para “Usuários” e exclua a conta de administrador padrão.
DICA
Uma boa senha desempenha um papel fundamental na segurança do WordPress. Uma senha composta de números, letras maiúsculas e minúsculas e caracteres especiais é muito mais difícil de ser descoberta.

Recomendo o uso de ferramentas especializadas para criar e armazenar senhas com segurança, por exemplo, o software gratuito KeePass Password Safe.

Além disso, há uma opção para remover a exibição da mensagem de que o login e a senha inseridos estão incorretos no arquivo functions.php localizado na pasta do tema atual de seu site (wp-content/themes/current_theme_WordPress). Mas eu removi o código, pois ele é diferente para diferentes versões do WordPress. Use o plug-in Clearfy Pro ou o plug-in WP Cerber Security para desativar as informações de senha incorreta.

Desativar o WP JSON

WP JSON é a abreviação de WordPress JSON REST API. O WP JSON é usado para escrever aplicativos em diferentes plataformas e em diferentes idiomas que podem gerenciar seu site: adicionar, alterar e excluir conteúdo, personalizar temas, menus, widgets e muito mais. Como você já deve ter adivinhado, ele permite que você faça coisas inseguras!

Os mecanismos de pesquisa geralmente indexam /wp-json/ como uma subseção do site. Do ponto de vista de SEO, no índice devem estar apenas as páginas que trazem tráfego, não as páginas técnicas (lixo) /wp-json/.

Ao desativar a API REST do WordPress, lembre-se de que alguns plug-ins populares a utilizam, como o Contact Form 7. Portanto, se seu formulário de feedback parar de funcionar repentinamente, verifique se a API REST está desativada.

Temos pelo menos dois motivos para desativar o wp-json: segurança e SEO. Para desativar o wp-json, uso o plugin Clearfy Pro ou você pode usar o código abaixo.

Uso do .htaccess no Apache para melhorar a segurança do WordPress

A configuração correta e segura do .htaccess é um tópico muito extenso e requer certas competências profissionais. Recomendo enfaticamente que você não copie as configurações do .htaccess de sites obscuros, especialmente de fóruns, e use-as sem entender.

O .htaccess é um arquivo necessário para o funcionamento correto dos links do WordPress ao usar o Apache, servidor da Web LiteSpeed (no Nginx, o arquivo .htaccess não é usado). Sem as entradas corretas no arquivo .htaccess, você receberá muitos erros 404.

Use o código abaixo para reparar um arquivo .htaccess corrompido (por exemplo, um plug-in que não esteja funcionando corretamente). O código foi copiado da documentação oficial do Wordpess.

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Lista de plugins de segurança para WordPress

Os hackers geralmente exploram brechas nos modelos ou plug-ins do WordPress. Portanto, é importante verificar seu blog com mais frequência. Há muitos plug-ins bem elaborados para essa finalidade, por exemplo: WP Cerber Security – configurações claras, convenientes e nada ruins. Eu o utilizo. A propósito, você não o encontrará nos plug-ins oficiais do Worpdress, pois ele não é considerado confiável:)

Uma lista de outros plug-ins de segurança para o WordPress:

  • O Wordfence Security é um antivírus, firewall e verificador de malware. O Wordfence oferece um guia de aplicativos e a capacidade de fazer varreduras automáticas, além de várias outras configurações diversas.
  • O plug-in Sucuri Security protege contra ataques DDOS, contém uma lista negra, verifica se há malware em seu site e gerencia seu firewall. Google, Norton, McAfee – esse plug-in inclui todas as listas negras desses programas. Você será notificado por e-mail quando um problema for detectado.
  • BulletProof Security (difícil de entender como funciona e, portanto, de configurar) – verificador de malware, firewall, proteção de formulário de autorização, backup de banco de dados, antispam. Função de comparação de banco de dados. Backups de bancos de dados: backups completos e parciais de bancos de dados, backups manuais e programados, envio de backups arquivados por e-mail, exclusão automática de backups desatualizados de acordo com a programação.
  • All-In-One Security (AIOS) – Segurança e firewall
  • Defender Security – scanner de malware, segurança de login e firewall

Há um grande número de plug-ins de segurança especiais projetados para o WordPress. Você pode encontrá-los aqui: https://wordpress.org/plugins/tags/security/.

Alteração dos prefixos padrão da base de dados do WordPress para prevenir a injeção de SQL

A injeção de SQL (SQL injection) é um dos métodos comuns de hacking de sites e programas que trabalham com bancos de dados, baseado na inserção de código SQL arbitrário em uma consulta. A injeção de SQL, dependendo do tipo de sistema de gerenciamento de banco de dados (SGBD) usado e das condições de injeção, pode permitir que o atacante execute consultas arbitrárias no banco de dados (por exemplo, ler o conteúdo de qualquer tabela, excluir, modificar ou adicionar dados), obter a capacidade de ler e/ou escrever arquivos locais e executar comandos arbitrários no servidor atacado.

Ponto-chave: Um ataque de injeção de SQL pode ser possível devido ao tratamento inadequado dos dados de entrada usados em consultas SQL. Em termos simples, em algum dos plugins ou no tema, os dados inseridos pelo visitante do seu site não são tratados de maneira correta (ou segura).

Eu sou cético em relação aos conselhos sobre a mudança do prefixo do banco de dados do WordPress em um site que já está funcionando. Se você é um webmaster iniciante, mude o prefixo apenas durante a instalação inicial do WordPress.

Se você é um experimentador profissional, procure um guia para mudar o prefixo em qualquer outro site. Boa sorte!

Conclusão

Na internet existem duas opiniões opostas:

  1. Opinião 1: Apesar de o WordPress ser o CMS mais hackeável do mundo, não é tão difícil melhorar suas defesas.
  2. Opinião 2: Por mais triste que pareça, a proteção do WordPress é algo complicado, e qualquer ação não garante 100% que seu site estará completamente protegido contra qualquer ação de fraudadores.

Caros webmasters, façam backups e durmam bem! Mas descubram os princípios básicos da proteção do WordPress por conta própria, não deleguem. Para entender os métodos básicos de proteção do WordPress, basta entender as recomendações deste artigo.

Dmytro Yakovenko
Leave a Reply

Your email address will not be published. Required fields are marked *