Avançar para conteúdo

Tudo para WordPress

Plugins, Temas, dicas de WordPress e muito mais para você que busca informação sobre este excelente CMS!

  • Twitter
  • Facebook
  • Google+
  • RSS
Entenda com funciona Assine nosso RSS

Segurança: Alterando o prefixo do Banco de Dados do WordPress

Publicado em 11/10/2011 às 17h25 por Guga Alves

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_:

Prefixo das tabelas do WordPress

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 WordPress

Primeiro 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 WordPress

Para mudar seu prefixo após a instalação, reserve cerca de dez minutos e siga estes passos:

Passo 1: Preparativos

Antes 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 tabela

Mudar 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 WordPress

Vá 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ções

Agora, 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 usermeta

Agora, 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 :)

Fonte: DigWP

10 pessoas comentaram o artigo

  • Felipe Lucena comentou em 9 de fevereiro de 2012.

    Guga. Ótima dica! Show.

    Eu realmente não atentei pra esse ponto em minha instalação e coloquei o prefixo padrão. Já estou providenciando a mudança.

    Abraços.

    Responder esse usuário
  • Diego Leite comentou em 18 de março de 2012.

    Olá Guga Alves, foi muito interessante a publicação desse tutorial, pois estou trabalhando na construção do meu próprio site feito com a plataforma WordPress.

    – Eu utilizo aqui o Xampp com o phpmyadmin para o gerenciamento do meu Banco de Dados. Na hora de executar o comendo publicado logo acima em sua brilhante postagem eu tive que tirar as aspas no momento de Renomear as 11 tabelas do meu Banco de Dados.

    Responder esse usuário
  • Rafael Paulino comentou em 19 de setembro de 2012.

    Oi Guga muito obrigado pelo post, me ajudou muito!

    Só tem um detalhe no post:

    Se colocar um escape no sublinhado ai a consulta retorna apenas as tabelas que nós precisamos, por exemplo:

    Disso:
    SELECT * FROM ‘wp_VzQCxSJv7uL_options’ WHERE ‘option_name’ LIKE ‘%wp_%’

    SELECT * FROM ‘wp_VzQCxSJv7uL_usermeta’ WHERE ‘meta_key’ LIKE ‘%wp_%’

    Para isso:
    SELECT * FROM ‘wp_VzQCxSJv7uL_options’ WHERE ‘option_name’ LIKE ‘wp\_%’

    SELECT * FROM ‘wp_VzQCxSJv7uL_usermeta’ WHERE ‘meta_key’ LIKE ‘wp\_%’

    Um abraço e t+

    Responder esse usuário
  • Paulo Santos comentou em 24 de fevereiro de 2013.

    Oi

    Eu fiz tudo como explicou mas o meu site fica como se tivesse uma nova instalação, perdendo todos as configurações que tinha…falta alguma coisa ou não fiz algo correcto?

    Responder esse usuário
    • Eduardo comentou em 10 de outubro de 2014.

      Sempre leia tudo, com muita atenção, poderia ter dormido sem esse barulho!!!

      hahahahahaha

      Responder esse usuário
  • Djalma Toledo comentou em 27 de abril de 2015.

    Muito boa a postagem Guga.

    Aqui executei e deu tudo certinho, apenas na hora de substituir wp_ dentro das tabelas que dava erro. Não sei se é por que uso o Sequel Pro mas de qualquer forma eu usei o arquivo searchreplacedb2.php pra substituir e deu certinho.

    Obrigado pela ótima postagem.

    abraço

    Responder esse usuário

Participe e deixe o seu comentário!

Procurando Temas?

Acesse o arquivo de Temas WordPress