A proteção do seu site WordPress contra ataques de injeção de SQL é necessária para proteger seus dados e manter a confiança dos visitantes.
A injeção de SQL é uma técnica comum usada por hackers para atacar seu banco de dados. Depois de fazer isso, os hackers podem ler seus dados confidenciais, modificá-los e assumir o controle de todo o seu banco de dados.
Para proteger seu site contra essa ameaça, é fundamental implementar medidas de segurança fortes em seu site.
Na WPBeginner, levamos a segurança muito a sério e fizemos de tudo para proteger nosso site contra hackers e malware. Muitas das práticas de segurança que recomendamos contra ataques de injeção de SQL são métodos que nós mesmos utilizamos com sucesso.
Neste artigo, compartilharemos algumas dicas práticas para evitar ataques de injeção de SQL no WordPress, passo a passo.
Por que evitar ataques de injeção de SQL no WordPress?
SQL significa Structured Query Language (Linguagem de Consulta Estruturada), que é uma linguagem de programação que se comunica com o banco de dados do seu site WordPress. Sem esse recurso, seu site não pode gerar nenhum conteúdo dinâmico.
No entanto, a entrada não autorizada do usuário, o software desatualizado ou a revelação de informações confidenciais podem causar vulnerabilidade de segurança e facilitar aos hackers a realização de ataques de injeção de SQL.
Esse ataque tem como alvo o servidor de banco de dados e adiciona códigos ou instruções maliciosas ao SQL. Ao fazer isso, os hackers podem usar informações confidenciais armazenadas em seu banco de dados, como dados de usuários, para roubo de identidade, aquisição de contas, fraude financeira e muito mais.
Eles também podem alterar entradas de banco de dados ou permissões de conta e realizar ataques DDoS, dificultando a visita de usuários reais ao seu site.
Isso pode prejudicar a confiança do cliente, afetar negativamente a experiência do usuário e diminuir o tráfego do site, o que será ruim para o crescimento da sua pequena empresa.
Dito isso, vamos dar uma olhada em algumas dicas práticas que podem evitar ataques de injeção de SQL no WordPress. Aqui está uma rápida visão geral do que falaremos neste artigo:
- Perform Site Updates Regularly And Use a Firewall
- Hide Your WordPress Version
- Change the WordPress Database Prefix
- Validate User Data
- Limit User Role Access and Permissions
- Create Custom Database Error Messages
- Remove Unnecessary Database Functionality
- Bonus: Use WPBeginner Pro Services to Create a Secure Site
Observação: Antes de fazer qualquer alteração em seu banco de dados para medidas preventivas, recomendamos a criação de um backup para ele. Dessa forma, se algo der errado, você poderá usar o backup para corrigir o problema. Para obter detalhes, consulte nosso tutorial sobre como fazer um backup do banco de dados do WordPress manualmente.
1. Faça atualizações do site regularmente e use um firewall
Uma maneira eficaz de evitar ataques de injeção de SQL é atualizar regularmente seu site WordPress para a versão mais recente. Essas atualizações geralmente corrigem as vulnerabilidades de segurança, inclusive problemas de software de banco de dados, dificultando o ataque dos hackers ao seu site.
Se você estiver usando uma versão desatualizada do WordPress, recomendamos ativar as atualizações automáticas para a versão mais recente, visitando a página Painel ” Atualizações.
Aqui, basta clicar no link “Enable automatic updates for all new versions of WordPress” (Ativar atualizações automáticas para todas as novas versões do WordPress). Agora, todas as principais atualizações serão instaladas em seu site assim que forem lançadas.
Para obter mais informações, consulte nosso guia para iniciantes sobre como atualizar o WordPress com segurança.
Depois de fazer isso, você também pode adicionar um firewall para aumentar a segurança. Esse recurso funciona como um escudo entre seu site e o tráfego de entrada e bloqueia ameaças comuns à segurança, inclusive ataques de SQL, antes que elas cheguem ao seu site.
Se você administra uma pequena empresa on-line, recomendamos o Sucuri, que é uma das melhores opções de software de firewall para WordPress do mercado. Ele oferece um firewall em nível de aplicativo, prevenção contra força bruta, bem como serviços de remoção de malware e de listas negras, o que o torna uma excelente opção.
Temos experiência em primeira mão com a ferramenta. Ela até nos ajudou a bloquear 450.000 ataques do WordPress em nosso site no passado.
Dito isso, a Sucuri pode não ser suficientemente poderosa para sites maiores e de alto tráfego. Nesse caso, você pode considerar o Cloudflare, que pode oferecer recursos de segurança e uma impressionante rede de distribuição de conteúdo (CDN).
Se não tiver certeza sobre qual opção é a melhor para o seu site, confira nosso artigo sobre por que mudamos da Sucuri para a Cloudflare ou nossa comparação entre Sucuri e Cloudflare.
2. Oculte sua versão do WordPress
Por padrão, o WordPress exibe o número da versão atual do software que você usa em seu site. Por exemplo, se você estiver usando o WordPress 6.4, essa versão será exibida em seu site para rastreamento.
No entanto, a visibilidade pública do número da versão pode criar ameaças à segurança e facilitar aos hackers a realização de ataques de injeção de SQL no WordPress.
Isso ocorre porque cada versão do WordPress tem suas próprias vulnerabilidades exclusivas que os invasores podem explorar após descobrirem sua versão. Isso permitirá que eles adicionem trechos de códigos maliciosos ao seu site por meio de campos de entrada vulneráveis.
Você pode remover facilmente o número da versão do seu site adicionando o seguinte trecho de código ao seu arquivo functions.php.
add_filter('the_generator', '__return_empty_string');
Depois de fazer isso, os hackers não conseguirão encontrar o número da versão do WordPress por meio de scanners automáticos ou de qualquer outra forma.
Observação: lembre-se de que um pequeno erro ao adicionar código pode tornar seu site inacessível. É por isso que recomendamos o WPCode. Ele é o melhor plug-in de trechos de código que torna a adição de código personalizado ao seu site super segura e fácil.
Para obter mais detalhes, consulte nosso tutorial sobre a maneira correta de remover o número da versão do WordPress.
3. Alterar o prefixo do banco de dados do WordPress
Por padrão, o WordPress adiciona o prefixo wp_ a todos os seus arquivos de banco de dados, o que torna mais fácil para os hackers planejarem um ataque visando o prefixo.
A maneira mais fácil de evitar ataques de injeção de SQL é alterar o prefixo padrão do banco de dados com algo exclusivo que os hackers não consigam adivinhar.
Você pode fazer isso facilmente conectando seu site usando o FTP. Depois disso, abra o arquivo wp-config.php e localize a alteração da linha $table_prefix
. Em seguida, você pode alterá-la do simples wp_
padrão para algo como isto: wp_a123456_
.
$table_prefix = 'wp_a123456_';
Em seguida, você deve acessar o cPanel da sua conta de hospedagem na Web. Para este tutorial, usaremos a Bluehost. No entanto, seu cPanel pode ter uma aparência um pouco diferente, dependendo da empresa de hospedagem na Web.
Aqui, vá para a guia “Advanced” (Avançado) e clique no botão “Manage” (Gerenciar) ao lado da seção “PHPMyAdmin”.
Isso abrirá uma nova página na qual você deverá selecionar o nome do banco de dados na coluna da esquerda e alternar para a guia “SQL” na parte superior.
Depois disso, você pode adicionar a seguinte consulta SQL na caixa de texto.
Lembre-se apenas de alterar o prefixo do banco de dados para o prefixo que você escolheu ao editar o arquivo wp-config.php.
RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;
Para obter mais instruções, consulte nosso tutorial sobre como alterar o prefixo do banco de dados do WordPress para aumentar a segurança.
4. Validar dados do usuário
Os hackers geralmente injetam ataques SQL no seu site usando campos para inserir dados do usuário, como seções de comentários ou campos de formulários de contato.
É por isso que é importante validar todos os dados enviados em seu blog do WordPress. Isso significa que os dados do usuário não serão enviados ao seu site se não seguirem um formato específico.
Por exemplo, um usuário não poderá enviar o formulário se o campo de endereço de e-mail não tiver o símbolo “@”. Ao adicionar essa validação à maioria dos seus campos de formulário, você pode evitar ataques de injeção de SQL.
Para fazer isso, você precisará do Formidable Forms, que é um plugin avançado de criação de formulários. Ele vem com a opção “Input Mask Format” (Formato da máscara de entrada), na qual você pode adicionar o formato que os usuários devem seguir para enviar os dados do campo do formulário.
Você pode adicionar um formato específico para números de telefone ou campos de texto simples.
Se não quiser validar os campos do formulário, recomendamos o WPForms porque é o melhor plugin de formulário de contato que vem com proteção completa contra spam e suporte ao Google reCAPTCHA.
Ele também permite que você adicione menus suspensos e caixas de seleção aos seus formulários, dificultando a adição de dados maliciosos por hackers.
Para obter mais detalhes, consulte nosso tutorial sobre como criar um formulário de contato seguro no WordPress.
5. Limitar o acesso e as permissões da função do usuário
Outra dica para evitar ataques de injeção de SQL no WordPress é limitar o acesso dos usuários ao seu site.
Por exemplo, se você tiver um blog com vários autores, terá vários autores, além de assinantes e administradores. Nesse caso, você pode aumentar a segurança do site limitando o acesso total do administrador somente ao administrador.
Você pode restringir todas as outras funções de usuário a funções específicas necessárias para o desempenho do trabalho. Isso reduzirá o acesso de usuários ao seu banco de dados e evitará ataques de injeção de SQL.
Você pode fazer isso com o plug-in gratuito Remove Dashboard Access. Após a ativação, basta visitar a página Configurações ” Acesso ao painel, onde você pode decidir quais funções de usuário têm acesso ao painel.
Se quiser limitar os usuários de acordo com seus recursos, consulte nosso tutorial sobre como adicionar ou remover recursos das funções de usuário no WordPress.
Da mesma forma, você também pode limitar os autores às suas próprias postagens na área de administração para aumentar a segurança.
6. Criar mensagens de erro personalizadas para o banco de dados
Às vezes, os usuários podem se deparar com um erro de banco de dados em seu site, que pode exibir informações importantes sobre o banco de dados, tornando-o vulnerável a ataques de injeção de SQL.
Nesse caso, recomendamos a criação de uma mensagem de erro de banco de dados personalizada que será exibida aos usuários quando eles se depararem com esse erro comum. Para fazer isso, você precisará copiar e colar o conteúdo a seguir em um aplicativo de bloco de notas e salvar o arquivo como “db-error.php”.
<?php // custom WordPress database error page
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600'); // 1 hour = 3600 seconds
// If you wish to email yourself upon an error
// mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
You got problems.
</body>
Depois disso, conecte seu site a um programa de FTP e carregue o arquivo que acabou de criar no diretório /wp-content/ do seu site.
Agora, quando os usuários encontrarem um erro de banco de dados no seu site, eles verão uma mensagem de erro informando-os sobre o problema sem revelar nenhuma informação confidencial.
Além disso, o título “Database Error” será exibido na guia do navegador da Web.
Para obter mais detalhes, consulte nosso tutorial sobre como adicionar uma página de erro de banco de dados personalizada no WordPress.
7. Remover funcionalidades desnecessárias do banco de dados
Para evitar ataques de injeção de SQL, você também deve tentar remover todas as funcionalidades e arquivos de banco de dados que não são necessários em seu site.
Por exemplo, você pode excluir tabelas desnecessárias, lixo ou comentários não aprovados que podem tornar seu banco de dados suscetível a hackers.
Para remover a funcionalidade desnecessária do banco de dados, recomendamos o WP-Optimize. Ele é um plug-in incrível que remove tabelas desnecessárias, revisões de postagens, rascunhos, comentários na lixeira, postagens excluídas, pingbacks, metadados de postagens e muito mais.
Ele remove todos os arquivos desnecessários e otimiza o banco de dados para torná-lo mais seguro e mais rápido. Para obter detalhes, consulte nosso guia para iniciantes sobre como otimizar o banco de dados do WordPress.
Bônus: use os serviços WPBeginner Pro para criar um site seguro
Depois de tomar todas as medidas preventivas contra ataques de injeção de SQL, você também pode optar pelo WPBeginner Pro Services.
Podemos ajudá-lo a identificar e corrigir quaisquer outras vulnerabilidades de segurança que você desconheça. Além disso, se você já sofreu um ataque de injeção de SQL, nossos especialistas podem ajudá-lo a conter os danos e a recuperar seus sistemas.
Você também pode nos contratar para melhorar a otimização da velocidade do seu site, o design, o SEO ou até mesmo reconstruir completamente o seu site WordPress existente, independentemente de ele ter sido hackeado ou não.
Para obter mais informações, confira todos os nossos WPBeginner Professional Services.
Esperamos que este artigo tenha ajudado você a aprender como evitar ataques de injeção de SQL no WordPress. Talvez você também goste de ver nosso guia para iniciantes sobre como verificar as atualizações de segurança do WordPress ou nosso guia definitivo sobre segurança do WordPress.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!