Segurança: Alterando o prefixo do Banco de Dados do WordPress
Autor: Lucas Bonfim | Publicado: 2012-02-29T08:23:00-08:00

Uma das coisas incríveis do WordPress é que ele é um sistema de  publicação dinâmica, que utiliza um banco de dados para armazenar  informações de seu site: posts, opções e configurações de plugins e  temas – todos estes dados são armazenados no banco de dados do seu site.  É como se fosse cérebro da sua instalação do WordPress. Infelizmente o  banco de dados do WordPress é também o principal alvo dos ataques.  Spammers e outros caras maus miram nas tabelas do banco de dados com  vários scripts automatizados de injeção SQL, e outros códigos  maliciosos.
Com isso, é fundamental proteger seu banco de dados e manter  backups recentes. Uma das maneiras mais inteligentes para proteger seu  banco de dados do site é mudar o prefixo da tabela padrão para algo  obscuro e difícil de adivinhar. Como uma espécie de senha.
Por padrão, durante a instalação, o WordPress cria o banco de dados  com todas as tabelas com o prefixo “wp_”. Existem 11 tabelas criadas no  procedimento de instalação padrão, e todas elas serão prefixados com  wp_:
Um problema nisso é que ao instalar o WP com o prefixo padrão das  tabelas, um possível invasor poderá acertar o nome de suas tabelas sem  problemas. Existem scripts automatizados que visam o banco de dados do  WordPress exatamente com esses nomes de tabela durante seus ataques, o  que é totalmente compreensível pois quase todos fazem suas instalações  deste modo, o que facilita o trabalho dos invasores.
Felizmente, você pode melhorar a segurança de seu site alterando o  prefixo para algo completamente aleatório e exclusivo. Existem duas  maneiras de alterar o banco de dados de prefixo: a maneira fácil e da  maneira mais difícil, e qual maneira você vai usar depende  exclusivamente se você já instalou o seu site WordPress ou não ..
Alterando o prefixo de tabela padrão antes de instalar o WordPressPrimeiro vejamos qual o caminho mais fácil. Antes de instalar o  WordPress, ao configurar o arquivo wp-config.php com as suas credenciais  de banco de dados, note que lá você verá a seguinte linha:
$table_prefix = ‘wp_’;Para alterar o prefixo do banco de dados, basta alterar esta string pela que você desejar.
Se você já está com seu site WordPress instalado e deseja alterar o prefixo, vejamos abaixo como proceder.
Alterando o prefixo de tabela padrão após a instalação do WordPressPara mudar seu prefixo após a instalação, reserve cerca de dez minutos e siga estes passos:
Passo 1: PreparativosAntes de mudar seu prefixo de tabela, verifique se você tem um backup  recente e cerca de 10 minutos de tempo de inatividade para o seu site.  Pode ser uma boa idéia para redirecionar os visitantes para uma página  de manutenção temporária.
Passo 2: Alterar prefixo da tabelaMudar seu prefixo de tabela de banco em wp-config.php de wp_ para  algo mais seguro e desconhecido por outras pessoas, como um prefixo  aleatório qualquer
Passo 3: Alterar todas as tabelas do banco de dados WordPressVá para o seu banco de dados (usando o phpMyAdmin ou qualquer outro) e  renomeie todos os prefixos de tabela WordPress wp_ para que você tenha  especificado no seu arquivo wp-config.php. Aqui estão os comandos SQL  para renomear as 11 tabelas padrão do WordPress:
RENAME table ‘wp_commentmeta’ TO ‘wp_VzQCxSJv7uL_commentmeta’;
RENAME table ‘wp_comments’ TO ‘wp_VzQCxSJv7uL_comments’;
RENAME table ‘wp_links’ TO ‘wp_VzQCxSJv7uL_links’;
RENAME table ‘wp_options’ TO ‘wp_VzQCxSJv7uL_options’;
RENAME table ‘wp_postmeta’ TO ‘wp_VzQCxSJv7uL_postmeta’;
RENAME table ‘wp_posts’ TO ‘wp_VzQCxSJv7uL_posts’;
RENAME table ‘wp_terms’ TO ‘wp_VzQCxSJv7uL_terms’;
RENAME table ‘wp_term_relationships’ TO ‘wp_VzQCxSJv7uL_term_relationships’;
RENAME table ‘wp_term_taxonomy’ TO ‘wp_VzQCxSJv7uL_term_taxonomy’;
RENAME table ‘wp_usermeta’ TO ‘wp_VzQCxSJv7uL_usermeta’;
RENAME table ‘wp_users’ TO ‘wp_VzQCxSJv7uL_users’;Se em seu banco de dados houver outras tabelas de plugins ou o que  quer que seja, é bom renomeá-las também. O objetivo aqui é renomear  todas as tabelas que começam com o prefixo padrão.
Passo 4: Edite o WordPress tabela de opçõesAgora, procure a tabela de opções para todas as instâncias do prefixo antigo. Para fazer isso, digite a seguinte consulta SQL:
SELECT * FROM ‘wp_VzQCxSJv7uL_options’ WHERE ‘option_name’ LIKE ‘%wp_%’Que a pesquisa irá retornar a opção wp_user_roles junto com outras  opções criado por plugins, scripts personalizados, etc. O objetivo aqui é  renomear as opções que começam com wp_ para o novo prefixo.
Passo 5: Edite a tabela usermetaAgora, procure o usermeta para todas as instâncias do prefixo wp_antigo. Aqui está um comando SQL para fazer isso:
SELECT * FROM ‘wp_VzQCxSJv7uL_usermeta’ WHERE ‘meta_key’ LIKE ‘%wp_%’Ao executar essa consulta em um banco de dados WordPress instalado recentemente, os seguintes campos usermeta foram devolvidos:
O número de campos que você precisará mudar o nome pode variar  dependendo de plugins e outros fatores, mas como antes, lembre-se de  renomear qualquer entrada que começa com o prefixo de tabela padrão do  WordPress, wp_.
Passo Final: teste, backup e fim!Chegando até aqui, todas as instâncias do prefixo tabela antiga (wp_)  foram substituídos com o wp_VzQCxSJv7uL_ no nosso exemplo. Uma vez  feito isso, vá verificar se seu site está em perfeito funcionamento.  Teste o Admin, páginas, mensagens, pesquisa e tudo mais que você puder  pensar (ou tiver tempo). Se o seu site parece estar funcionando como  antes, seu site sobreviveu bem a esta cirurgia. Mas é bom fazer outro  backup do banco de dados :)