O banco de dados do WordPress é o alvo favorito de hackers, uma vez que nele são armazenadas todas as informações. Alterar o prefixo do banco de dados do WordPress é uma das formas de protegê-lo.
Se o prefixo estiver em uso em sua instalação de software, considere alterar o prefixo da tabela de banco de dados do WP para melhorar a segurança, proteger a estrutura e evitar ataques de SQL Injection, por exemplo.
O WordPress não é vulnerável a ataques de SQL Injection. Mas isso pode acontecer e, neste caso, uma atualização seria disponibilizada para corrigir o problema. Por isso você deve sempre fazer o uso da última versão de software.
Muitos plugins não são desenvolvidos com a devida atenção a aspectos de segurança e isso pode criar brechas, por exemplo, de SQL Injection.
Plugins populares como o WooCommerce e Yoast SEO passaram por isso recentemente, mas atualizações foram disponibilizadas e o problema corrigido.
Imagine que um hacker encontre brechas em seu site. Ele vai explorar as brechas através de campos de formulário para digitar comandos SQL ao contrário da informação que você espera, como um endereço de e-mail, por exemplo.
Como a estrutura do banco de dados é conhecida, a não utilização do prefixo “wp_” garante maior segurança e dificulta o trabalho do atacante.
Backup para começar os trabalhos
Alterar o prefixo da tabela de banco de dados do WordPress requer alterações na estrutura da base de dados da aplicação.
Antes de começar os trabalhos neste sentido é preciso considerar um backup para ter uma fonte segura à qual recorrer.
Estrutura do banco de dados do WordPress
Por padrão, é requerida a criação de 11 tabelas na base de dados do WordPress e todas elas fazem uso do mesmo prefixo.
Seus nomes são auto-descritivos para suas finalidades. Observe:
- *_commentmeta
- *_comments
- *_links
- *_options
- *_postmeta
- *_posts
- *_terms
- *_term_relationships
- *_term_taxonomy
- *_usermeta
- *_users
Durante o processo de instalação do WordPress você define o prefixo a ser utilizado. Com isso, é possível iniciar sem o uso do “wp_”.
Caso o começo tenha sido errôneo precisaremos atuar para alterar o prefixo da tabela do banco de dados do WP alterando “wp_”, por exemplo, para “wp_UmEXmplloHAshEE_”.
O arquivo wp-config.php e o prefixo da tabela de banco de dados do WP
No arquivo wp-config.php a variável $table_prefix armazena o prefixo da tabela de banco de dados do WP e, em caso de alteração, é preciso alterar o valor dessa variável com o novo nome do prefixo que fora definido.
Com a alteração do prefixo da tabela de banco de dados do WP no arquivo mencionado, o WordPress não encontrará suas tabelas no banco e vai compreender que ele não está instalado e te conduzirá para o processo de configuração.
Isso é um comportamento normal e a partir daí precisaremos seguir para alterar o prefixo na estrutura das tabelas.
Como alterar o prefixo do banco de dados do WordPress
Alterar o prefixo da tabela do banco de dados pode ser feito manualmente através de comandos SQL ou com o uso de interface como o phpMyAdmin.
Veremos ambos os cenários para esse processo.
Alterar o prefixo da tabela do banco de dados do WP através de instruções SQL
O primeiro passo é renomear todas as tabelas alterando seu prefixo, assim:
RENAME table `wp_commentmeta` TO `wp_UmEXmplloHAshEE_commentmeta`;
RENAME table `wp_comments` TO `wp_UmEXmplloHAshEE_comments`;
RENAME table `wp_links` TO `wp_UmEXmplloHAshEE_links`;
RENAME table `wp_options` TO `wp_UmEXmplloHAshEE_options`;
RENAME table `wp_postmeta` TO `wp_UmEXmplloHAshEE_postmeta`;
RENAME table `wp_posts` TO `wp_UmEXmplloHAshEE_posts`;
RENAME table `wp_terms` TO `wp_UmEXmplloHAshEE_terms`;
RENAME table `wp_term_relationships` TO `wp_UmEXmplloHAshEE_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_UmEXmplloHAshEE_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_UmEXmplloHAshEE_usermeta`;
RENAME table `wp_users` TO `wp_UmEXmplloHAshEE_users`;
Em seguida é preciso ter uma atenção especial a duas tabelas em específico, a *_options e *_usermeta. Nessas tabelas há campos em que seus nomes são constitutídos com o prefixo da tabela em uso, é preciso localizar essas informações e alterar o prefixo da tabela de banco de dados do WP também. As instruções SQL para localizar esses campos são as seguintes:
SELECT * FROM `wp_UmEXmplloHAshEE_options` WHERE `option_name` LIKE '%wp_%'
SELECT * FROM `wp_UmEXmplloHAshEE_usermeta` WHERE `meta_key` LIKE '%wp_%'
Alterar o prefixo da tabela do banco de dados do WP através do phpMyAdmin
Dependendo da sua versão do phpMyAdmin, a troca de prefixo de tabela é facilitado devido a um recurso nativo.
Observe uma representação dessa funcionalidade na imagem ao lado.
A forma de uso do recurso mencionado é muito simples: selecione todas as tabelas com o prefixo “wp_” e escolha a opção “Replace table prefix” nas opções do “With selected:“.
Essa opção te apresentará uma tela com dois campos de formulários para você informar o “From” e o “To”. Com isso, bastará informar, nesse contexto, “wp_” em “From” e “wp_UmEXmplloHAshEE_” em “To”.
Em seguida, como já é de conhecimento, é preciso localizar os campos em que seus nomes foram constituídos com o prefixo.
Esses campos se localizam nas tabelas *_options e *_usermeta. As imagens abaixo representam essa busca e alteração do prefixo através do phpMyAdmin.
O prefixo do de dados do WP como aspecto de segurança
Em um olhar simplificado, alterar o uso do prefixo da tabela de banco de dados do WP para garantir o não uso do “wp_” parece ser pouco, mas é um passo a mais em direção à segurança para WordPress.
Fugir do padrão da estrutura do banco de dados e garantir mais segurança para ele, dificultar os ataques de SQL Injection e proteger um dos principais ativos do seu site: suas informações, as quais ficam armazenadas em banco de dados.