Início » Segurança para WordPress » Como alterar o prefixo da tabela de banco de dados do WP
Segurança para WordPress

Como alterar o prefixo da tabela de banco de dados do WP

A alteração do prefixo da tabela de banco de dandos ajuda na segurança do seu WP e evita ataques de SQL Injection. Saiba como.
Escrito Por Leandro Vieira em março de 2020 /6 min de leitura
Conteúdo escrito por humano

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

O esquema de banco de dados do WordPress
O esquema de 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

Prefixo da tabela de banco de dados do WP no arquivo wp-config.php

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

Função nativa do phpMyAdmin para alterar o prefixo da tabela de banco de dados do WP

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.

Prefixo antigo localizado na tabela de meta informações do usuário
Prefixo antigo localizado na tabela de meta informações do usuário
Interface de edição de linha daetabela no phpMy admin
Interface de edição de linha daetabela no phpMy
admin

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.

Leandro Vieira

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.
Qual nota você da para este artigo?
Ruim

O que você achou disso?

Clique nas estrelas

Média da classificação 0 / 5. Número de votos: 0

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Excelente
Artigos Relacionados
destaque-wordpress-com-ssl

Porque você deve considerar o WordPress com SSL

  1. Alessandro
    Oi Leandro, Tenho um projeto onde o prefixo da tabela era o padrão wp_. Para subir o projeto na hospedagem, precisei alterar o prefixo do banco conforme havia configurado na instalação do wordpress. Fiz todos os passos, mas as páginas não aparecem dentro do gerenciador. Será que faltou alguma coisa para configurar? Abraços.
  2. […] você esteja utilizando o prefixo “wp_”, saiba como altera-lo e definir um mais […]
  3. Thais
    Estou com o mesmo problema do Alessandro :( Como resolve?
  4. […] Aprenda de uma vez por todas como alterar o prefixo da tabela de banco de dados do WP […]
  5. […] Se o prefixo “wp_” está em uso considere a troca e para isso considere aprender como alterar o prefixo da tabela de banco de dados do WP. […]
  6. […] Aprenda de uma vez por todas como alterar o prefixo da tabela de banco de dados do WP […]
  7. Excelente artigo.
  8. […] banco de dados requer ações simples como o uso inteligente do prefixo das tabelas do WordPress, a políticas de controle de acesso, permissões dos usuários a banco de dados, senhas seguras e […]
  9. […] banco de dados requer ações simples como o uso inteligente do prefixo das tabelas do WordPress, a políticas de controle de acesso, permissões dos usuários a banco de dados, senhas seguras e […]
  10. Paula
    Olá Leandro Obrigada pelo post, muito bacana. No meu caso, ainda vou instalar o WP, o site está vazio sem conteúdo. Como posso alterar o prefixo de tabela, poderia me ajudar, por favor? No aguardo Paula
  11. Não entendo o sentido de modificar o prefíxo das tabelas... sendo que esse prefíxo fica em uma variável, que pode ser acessado por qualquer scripit, a não ser que exista uma segurança do wordpress para com isso não? Pois faria sentido se eu modificasse o nome da tabela, pois ai... o rack não poderia encontrar, mas não sei... talvez esteja errado... Por exemplo quando modifico o prefixo de minhas tabelas, meus plugins continuam funcionando normalmente... isso é porque eles pegam o valor do prefíxo na váriável, logo isso não fez muito sentido pra mim... poderia me explicar em termos mais tecnicos? Pois se o wordpress gerencia isso, logo não faz sentido modificar o préfixo....
    1. Leandro Vieira
      Para ficar fácil de entender. Imagine que seu site está com alguma brecha de SQL Injection. Esse tipo de brecha me permite executar uma query em seu banco de dados. Como conheço a estrutura do banco, e claro, o nome das tabelas eu vou rodar a SQL com facilidade. Se o prefixo é diferente de "wp_", logo eu preciso descobrir isso primeiro. A lógica é ir dificultando, sacou?

Construa seu site WordPress sob medida com os maiores especialistas em WordPress da America Latina
Conheça a Apiki

Faça um comentário
Cadastre-se rápido

Fazer Login