Cambiar prefijos de la base de datos de WordPress

En este artículo vamos a ver una de las medidas necesarias para hacer más seguro tu blog WordPress evitando que hackers puedan hacerte injecciones SQL.

Cuando un hacker trata de atacar tu sitio mediante una injección SQL lo primero que va a hacer es comprobar si las tablas de tu base de datos empiezan por ‘wp_’ pues los nombres de las tablas de WordPress son de sobra conocidas (wp_options, wp_posts, wp_comments, etc).

Es por ello, como medida de seguridad, tener que cambiar los prefijos de la base datos. En las últimas versiones de WordPress ya te permiten elegir un prefijo distinto a ‘wp_’, pero, ¿qué hacemos en el caso de que nuestro WordPress ya esté en marcha?

Antes de realizar nada, te recomiendo que hagas un backup de la base de datos por si metes la pata.

Tienes que abrir el archivo “wp-config.php” y buscar la siguiente línea para cambiar su valor por el nuevo prefijo

$table_prefix  = 'wp_';

Aquí es donde vamos a cambiar el prefijo, y lo ideal es usar una cadena que sea difícil de descifrar, cuanto más mejor, por ejemplo ‘sax12qwe32_’. Así que sustituimos el predecible ‘_wp’ por esta nueva cadena:

$table_prefix  = ‘sax12qwe32_’;

Bien, ahora tocaría cambiar los nombres de las tablas de la base de datos cambiando el típico ‘wp_’ de WordPress por el prefijo que hayas elegido.

Cuando instalas WordPress se añaden nada menos que 11 tablas estándar por defecto en tu base de datos. Luego, si instalas plugins, incluso con algunos temas, la lista va creciendo. Acede a phpMyAdmin y revisa en la lista de la izquierda la lista de tablas de tu base de datos y verás, por lo menos, las 11 originales (aunque seguro que verás más).

Para no ir modificando estas tablas una a uno podemos ir a la pestaña SQL y ejecutar las siguientes querys:

RENAME table `wp_commentmeta` TO `sax12qwe32_commentmeta`;
RENAME table `wp_comments` TO `sax12qwe32_comments`;
RENAME table `wp_links` TO `sax12qwe32_links`;
RENAME table `wp_options` TO `sax12qwe32_options`;
RENAME table `wp_postmeta` TO `sax12qwe32_postmeta`;
RENAME table `wp_posts` TO `sax12qwe32_posts`;
RENAME table `wp_terms` TO `sax12qwe32_terms`;
RENAME table `wp_term_relationships` TO `sax12qwe32_term_relationships`;
RENAME table `wp_term_taxonomy` TO `sax12qwe32_term_taxonomy`;
RENAME table `wp_usermeta` TO `sax12qwe32_usermeta`;
RENAME table `wp_users` TO `sax12qwe32_users`;

Con las anteriores sentencias SQL hemos editado los nombres de las tablas básicas de WordPress, las que queden tendrás que ejecutar la misma sentencia o cambiar el nombre manualmente.

Ahora tendríamos que modificar algunos campos de la tabla de configuración de WordPress, ‘wp_options’.

La tabla ‘wp_options‘ contiene por lo menos un valor que hace referencia a los viejos prefijos de tabla así que hay que cambiarlo. De nuevo ejecutaremos un comando SQL que nos muestre todos los valores de esta tabla que contengan los nombres viejos.

Vamos de nuevo a la pestaña SQL y en la parte superior introducimos lo siguiente, de nuevo cambiando mi cadena aleatoria por la tuya:

SELECT * FROM `sax12qwe32_options` WHERE `option_name` LIKE ‘%wp_%’

Cuando veas los resultados edita el ‘option_name‘ para cambiar ‘wp‘ a la cadena que elegiste. O sea, que si uno de los ‘option_names‘ es, por ejemplo, ‘wp_user_roles‘, lo cambias a ‘sax12qwe32_user_roles‘, para que haga la referencia a los nuevos nombres de tablas.

También hay que modificar la tabla ‘wp_usermeta’ ya que hay referencias a “lo antiguo” así que de nuevo hay que ejecutar un comando para terminar el proceso, así que tecleamos lo siguiente para saber lo que nos toca cambiar:

SELECT * FROM `sax12qwe32_usermeta` WHERE `meta_key` LIKE ‘%wp_%’

Ahora lo que toca es cambiar el ‘meta_key‘ de cada resultado para que tenga nuestra cadena “anti-hackers”.

Ahroa ya deberías poder ir al Escritorio de tu WordPress para comprobar que todo funcione y sabiendo que estás un poco más seguro ante inyecciones SQL.

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(1 voto, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

3 respuestas a “Cambiar prefijos de la base de datos de WordPress”

  1. Carolina dice:

    Hola amigo, muy bueno el post. Ahora te queria consultar como agregar mas tablas a una base de datos de wordpress.
    Desde ya muchas gracias por tu respuesta. Saludos !!!!

    • Jose Aguilar dice:

      Hola, para agregar tablas a la base de datos tendrás que entrar en algún programa gestor de base de datos y crearlas por allí. Esa es la forma más sencilla. Saludos

  2. jose dice:

    gracias 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.