Como proteger seu site WordPress contra injeções de SQL
Publicados: 2022-03-09O WordPress é uma das plataformas de construção de sites mais usadas devido à sua ampla gama de aplicações potenciais. Você pode construir uma loja online, hospedar um blog sobre seu hobby favorito, criar uma comunidade por meio de fóruns ou representar uma grande corporação.
Mas seja qual for o uso, a principal responsabilidade é manter seu site protegido contra hackers. É por isso que é importante entender como evitar ataques de injeção de SQL (Structured Query Language).
A boa notícia é que existem muitas etapas que você pode seguir para proteger seu site WordPress desse código malicioso. Aprender a detectar, remover e evitar injeções de SQL pode ajudá-lo a proteger efetivamente seus dados valiosos e torná-lo menos suscetível a ataques.
O que é uma injeção de SQL e como ela funciona?
Para entender como as injeções funcionam, é útil primeiro aprender o que é SQL. Esta é uma linguagem comum usada no desenvolvimento de banco de dados.
Seu site o usa para recuperar informações críticas de seu banco de dados e gerar conteúdo dinâmico. Alguns dos bancos de dados SQL incluem MySQL (sites WordPress), MongoDB e SQL Server.
Seu site WordPress usa um banco de dados para gerenciar os dados e conteúdo essenciais do seu site, como suas páginas, postagens e comentários. Ele organiza essas informações em tabelas.

Seu banco de dados é onde seus dados mais confidenciais são armazenados. Portanto, qualquer ataque que o exponha pode ter consequências graves.
A injeção de SQL (SQLI) é um tipo de método de hacking que os cibercriminosos usam para se infiltrar e manipular bancos de dados do WordPress. Essencialmente, os hackers podem explorar brechas na codificação de back-end de sites e inserir código malicioso nos campos de entrada de dados.
Esse código permite que atores nefastos executem comandos SQL para os servidores de banco de dados por meio de solicitações da Web usando strings de consulta, cookies e elementos <input>. Isso significa que eles podem criar, acessar, alterar e eliminar dados do seu banco de dados WordPress.
Existem muitos pontos de entrada diferentes onde isso pode ocorrer. Os campos de entrada mais usados incluem formulários de inscrição, login e contato, bem como barras de pesquisa e carrinhos de compras.
Digamos que você tenha um formulário em seu site no qual os visitantes possam inserir seu número de telefone. Os cibercriminosos podem usar esse campo de entrada para inserir código malicioso que solicita o nome de usuário e a senha do administrador.
Tipos de injeções de SQL
Existem vários tipos diferentes de injeções de SQL. Uma categoria é o que é conhecido como “in-band”. Este é o tipo mais simples de injeção e inclui ataques baseados em erros.
Com essa técnica, os hackers usam a injeção para obter detalhes sobre a estrutura do banco de dados e os nomes das tabelas. Por exemplo, uma mensagem de erro pode fornecer o nome da tabela incluído em uma consulta. Em seguida, o hacker pode usar essas informações para criar novos ataques.
Outro tipo é o que chamamos de “injeção de SQL cega”. É quando o invasor envia uma variedade de consultas ao banco de dados para descobrir como o site analisa as respostas. Isso pode ajudá-los a investigar respostas a consultas SQL para identificar vulnerabilidades em potencial e solicitar que o banco de dados transmita dados para uma fonte externa.
Quão comuns são as injeções de SQL?
Infelizmente, os ataques de injeção de SQL são predominantes. De fato, de acordo com um relatório publicado pela Akamai, entre 2017 e 2019, cerca de dois terços dos ataques a aplicativos de software foram atribuídos a injeções de SQL.
Um relatório separado de estatísticas de vulnerabilidade de 2020 também revelou que as injeções de SQL representavam 42% das vulnerabilidades críticas mais comuns.
As injeções de SQL são uma possibilidade para qualquer site que use bancos de dados SQL, como sites baseados em WordPress, especialmente aqueles que possuem campos de entrada como formulários de contato e caixas de pesquisa.
Por que as injeções de SQL são perigosas
As injeções de SQL são perigosas por vários motivos. Primeiro, eles dão aos hackers a oportunidade de roubar informações confidenciais, como suas credenciais de login ou dados de clientes.
Os hackers não apenas podem usar injeção de SQL para obter e roubar dados, mas também podem usá-lo para excluir esses dados. Isso significa que você corre o risco de perder informações privadas e essenciais usadas para executar seu site.
Além disso, existe o risco de danos à reputação e perda de receita. Uma violação de dados pode prejudicar seus negócios e você pode perder a confiança de seus clientes ou fãs.
Além disso, esses ataques podem levar seu site à lista de bloqueio do Google. Se você acabar nesta lista, muitos visitantes em potencial receberão um aviso de que seu site não é seguro. A maioria dessas pessoas vai voltar e pode nunca mais voltar. Além disso, o Google também rebaixará significativamente suas classificações de pesquisa - o que pode levar a uma grande perda de tráfego orgânico a longo prazo, difícil de recuperar.
Como detectar injeções de SQL
Existem alguns sinais que podem indicar que você foi vítima de um ataque de injeção de SQL. Uma é que de repente você está recebendo um influxo de e-mails através do formulário de contato do seu site. Outro indicador é se você estiver recebendo pop-ups, anúncios e mensagens de erro estranhos, especialmente se eles estiverem redirecionando você para sites aparentemente incompletos.
Infelizmente, os sinais de um ataque de injeção de SQL nem sempre são tão óbvios. Como mencionamos anteriormente, às vezes os hackers querem usar injeções para roubar informações em vez de danificar seu site. Portanto, eles podem usar métodos mais sutis que dificultam a detecção.
Ferramentas de detecção e verificação de injeção de SQL
A única maneira de saber com certeza se você foi alvo é realizar uma verificação em seu site. Felizmente, há uma variedade de ferramentas online que podem ajudá-lo a detectar injeções de SQL em seu site WordPress.
Por exemplo, você pode usar as Ferramentas Pentest para realizar duas varreduras gratuitas do seu site.

Existem duas opções: uma varredura leve ou uma varredura completa. Para este último, você precisará atualizar para um plano pago. Basta digitar o URL do seu site e clicar no botão Scan target . Se houver vulnerabilidades presentes, a verificação as revelará.
Como remover injeções de SQL do seu site WordPress
1. Restaurar um backup
Sua melhor opção para remover injeções de SQL é restaurar um backup do seu site. Se você estiver usando o Jetpack Backup, tudo o que você precisa fazer é usar o log de atividades para determinar quando o ataque aconteceu e restaurar um backup anterior a esse ponto. Seu site retornará ao estado em que estava antes do hack.
No entanto, é importante notar que, em alguns casos, as injeções de SQL são feitas aos poucos, ao longo do tempo. Você pode precisar voltar bastante para encontrar um backup limpo, o que pode resultar em perda de dados.
E embora a restauração de um backup possa colocar seu site em funcionamento novamente, se dados confidenciais forem roubados, você ainda terá que lidar com as ramificações da violação.
2. Use um serviço de limpeza de sites
Outra opção é usar um serviço de limpeza de sites de terceiros para verificar seu site e corrigir qualquer injeção de SQL. Sucuri é uma opção - basta enviar seu site para a equipe deles e deixá-los cuidar de todo o resto. Como eles são especialistas, eles podem remover malware do seu banco de dados com mais eficiência do que o desenvolvedor médio.
3. Remova as injeções você mesmo
Por fim, se você tiver experiência em gerenciar e trabalhar com MySQL, poderá limpar manualmente seu banco de dados. Observe, no entanto, que essa é uma técnica avançada e, se você não souber o que está fazendo, fazer alterações pode levar a problemas.
Como evitar injeções de SQL no futuro
Não há como garantir que seu site seja 100% seguro, mas existem medidas que você pode tomar para minimizar o risco de ataque. Vamos dar uma olhada em oito métodos que você pode usar para evitar injeções de SQL no WordPress.
1. Valide (ou higienize) seus dados
A chave para evitar injeções de SQL no WordPress é proteger qualquer campo de entrada que possa ser usado para inserir dados ou conteúdo em seu site. Isso inclui seções e formulários de comentários. Portanto, é importante validar e higienizar os dados inseridos nesses campos no momento do envio.
A validação e sanitização de entrada permitem que você verifique os comandos enviados pelos usuários. A sanitização ainda permite que você altere os comandos. É uma maneira eficaz de garantir que esses comandos não contenham código malicioso ou sequências de caracteres.
A validação garante que as informações inseridas em um formulário correspondam ao formato solicitado antes de processar a solicitação. Por exemplo, se você tivesse um campo de entrada para um endereço de e-mail, os dados não seriam validados se o símbolo '@' não estivesse presente.
A maneira mais fácil de criar validação para seus dados de formulário é estabelecer regras para seus formulários. O processo para fazer isso dependerá do plugin específico que você está usando. Por exemplo, se você usar a versão premium do Formidable Forms, poderá adicionar seu próprio formato de máscara de entrada personalizado para campos de texto.


Adicionar requisitos de formato de entrada pode limitar o risco de injeção de SQL. A sanitização pode ajudar a garantir que os dados inseridos sejam seguros para serem processados depois de validados.
A maioria dos plugins de formulário do WordPress higienizam automaticamente os dados do formulário. No entanto, você pode adicionar medidas de segurança adicionais. Em vez de respostas abertas, considere usar menus suspensos e opções de múltipla escolha. Você também pode restringir o uso de caracteres especiais.
2. Instale uma ferramenta de segurança do WordPress
O plug-in de segurança WordPress do Jetpack pode monitorar seu site em busca de vulnerabilidades que podem levar a injeções de SQL. Isso lhe dá a oportunidade de corrigi-los antes que alguém tire vantagem.
Com o monitoramento do tempo de inatividade, você saberá no momento em que seu site cair para que possa reagir rapidamente. E com backups em tempo real, você pode restaurar seu site por completo.
Ele também fornece ferramentas de segurança como:
- Verificação de malware para seus arquivos do WordPress, juntamente com correções de um clique para a maioria dos problemas
- Soluções anti-spam para proteger seus comentários e formulários de contato
- Proteção contra ataques de força bruta para manter os hackers afastados
3. Mantenha seu site e banco de dados sempre atualizados
O uso de software e ferramentas desatualizados pode introduzir uma série de vulnerabilidades em seu site para serem exploradas por hackers. É por isso que é importante manter seu site WordPress atualizado o tempo todo.
Atualmente, quase metade das instalações do WordPress não está usando a versão mais atualizada. Portanto, você pode querer considerar habilitar as atualizações automáticas para garantir que você esteja sempre executando a versão mais recente do WordPress.
Para fazer isso para atualizações do Core, você pode navegar até o wp-config.php no diretório raiz do seu site. Em seguida, copie e cole o seguinte snippet de código no arquivo:
define( 'WP_AUTO_UPDATE_CORE', true );
Você pode habilitar atualizações automáticas para seus plugins navegando até Plugins tela do seu painel de administração. Em seguida, clique em Habilite as Atualizações Automáticas na coluna da extrema direita.

Para minimizar as vulnerabilidades, recomendamos a remoção de plugins ou temas não utilizados do seu site. Também é aconselhável atualizar sua versão do SQL. Se você estiver usando o cPanel para seu painel de controle de hospedagem, poderá atualizar seu software MySQL a partir do seu painel. Dependendo do seu provedor de hospedagem, você poderá habilitar as atualizações automáticas do SQL.
4. Altere o prefixo do banco de dados do WordPress
Por padrão, toda vez que você instala o WordPress, o CMS usa “wp_” como seu prefixo de banco de dados. É altamente recomendável alterar isso para outra coisa, pois os hackers podem usá-lo para explorar vulnerabilidades por meio de injeção de SQL.
Antes de começar, você deve fazer backup de seu banco de dados. Dessa forma, se algo der errado, você terá uma versão segura para restaurar.
Em seguida, conecte-se ao seu site via cliente FTP ou Gerenciador de Arquivos do seu host e navegue até o arquivo wp-config.php , que está localizado no diretório raiz do seu site. No arquivo, procure a linha table_prefix e altere “wp_” para outra coisa:
$table_prefix = 'wp_a12345_';
Quando terminar, salve o arquivo. É isso!
5. Use um firewall
Outra estratégia que você pode usar para se proteger contra injeção de SQL é instalar um firewall. Este é um sistema de segurança de rede que ajuda você a monitorar e controlar os dados que chegam ao seu site WordPress. Isso pode capturar e filtrar códigos maliciosos, incluindo aqueles de ataques de injeção de SQL.
Há uma grande variedade de ferramentas de firewall do WordPress que você pode usar. Algumas opções populares incluem Wordfence e Sucuri. Essas ferramentas não impedirão que invasores enviem comandos, mas podem ajudar a impedir que eles acessem seu site.
6. Oculte a versão do WordPress que você está usando
Ter a versão do seu site WordPress disponível publicamente pode facilitar a exploração de vulnerabilidades conhecidas pelos invasores, pois cada versão vem com seu próprio conjunto. Portanto, para proteger seu site, recomendamos ocultar a versão que você está usando.
Fazer isso é rápido e fácil. Para começar, basta copiar o seguinte trecho de código:
remove_action('wp_head', 'wp_generator');
Em seguida, navegue até o arquivo functions.php do seu tema atual do WordPress. Você pode fazer isso diretamente do Editor de Temas no WordPress, usando um cliente FTP ou usando o Gerenciador de Arquivos do seu host. Cole o código dentro do arquivo e salve suas alterações.
7. Elimine a funcionalidade desnecessária do banco de dados
Quanto mais funcionalidades seu banco de dados WordPress tiver, mais suscetível ele será a ataques. Para minimizar o risco de injeção de SQL, considere normalizar seu banco de dados e eliminar quaisquer funções e conteúdos desnecessários.
Em poucas palavras, a normalização do banco de dados refere-se ao processo de organizar seus dados. O objetivo de fazer isso é eliminar quaisquer dados redundantes em seu banco de dados e garantir que todas as dependências de dados façam sentido. Você pode fazer isso colocando seu banco de dados na Primeira Forma Normal.
Se você quiser uma opção mais amigável para iniciantes para limpar seu banco de dados WordPress, você pode usar um plugin. Há um punhado de opções sólidas para escolher, como o WP-Optimize.
Este plugin freemium ajuda você a limpar seu banco de dados sem precisar executar comandos SQL manualmente através do phpMyAdmin. Em vez disso, você pode usá-lo para otimizar seu banco de dados diretamente do painel do WordPress.

Ele remove todas as informações desnecessárias do seu banco de dados, incluindo lixo e comentários não aprovados. O WP-Optimize também permite desfragmentar suas tabelas de banco de dados MySQL com um único clique.
8. Limite o acesso e as permissões do usuário
Você pode atribuir várias funções para usuários do WordPress em seu site. Estes podem variar de um assinante a um administrador. Com cada função, você pode controlar quanto acesso é concedido e quais “recursos” eles recebem.
Para ajudar a fortalecer sua segurança, é melhor limitar o número de funções com acesso total de administrador e permissões de usuário. Quanto menos pessoas puderem alterar e inserir dados, menor será a probabilidade de você enfrentar um ataque de injeção de SQL.
Para personalizar as funções e permissões do usuário no WordPress, você pode navegar até Usuários → Todos os usuários .

Em seguida, clique no link Editar abaixo do nome do usuário para o qual você deseja limitar o acesso e as permissões. Na próxima tela, você pode alterar sua função usando o menu suspenso Função .
Ao gerenciar suas funções de usuário do WordPress, também recomendamos excluir todas as contas que não estão mais em uso. A eliminação de funções desatualizadas pode minimizar suas vulnerabilidades.
9. Evite usar plugins nulos
Plugins nulos são ferramentas premium que foram roubadas e são oferecidas gratuitamente. Embora possam parecer muito, você não apenas está prejudicando o desenvolvedor original por não pagá-los por seu trabalho, mas também está arriscando um hack.
Os plug-ins nulos geralmente estão cheios de códigos maliciosos e backdoors que fornecem aos hackers uma porta de entrada fácil para o seu site. Evite-os a todo custo e, em vez disso, use plugins de fontes confiáveis.
Proteja seu site WordPress contra injeções de SQL
Para proteger seu site e seus dados da ameaça de criminosos cibernéticos, é importante conhecer alguns dos métodos mais comuns usados para obter acesso ao seu site. Quando se trata de fortalecer a segurança do seu banco de dados, isso significa ser bem versado em injeções de SQL.
Como discutimos neste post, uma injeção de SQL pode ter efeitos prejudiciais no seu site WordPress, desde a exposição de dados confidenciais até a perda de conteúdo e receita. Felizmente, existem algumas etapas que você pode seguir para detectar, remover e evitar ataques de injeção.
Nenhum site é totalmente seguro, mas seguindo as dicas e técnicas acima, você pode reduzir significativamente suas chances de ser vítima de injeções de SQL.