Skip to content

Cambiar prefijo de WordPress

Ya alguna vez en el pasado os he hablado de la seguridad de wordpress, y por qué pienso que no siempre es «la solución adecuada» por defecto. En esta entrada voy a contaros una idea para robustecer vuestro WordPress, para tratar de dificultar la tarea a los que traigan malas ideas.

La base del problema

Muchos hackers, spammers, crackers y demás fauna del lugar tratan de atacar los sitios web lanzando scripts automatizados que buscan inyectar código malicioso  en nuestra base de datos. Existen un montón de técnicas para ello, y la solución pasa por dificultar el trabajo de los piratas.

En el caso de las bases de datos de WordPress, una técnica muy sencilla consiste en evitar el uso del prefijo por defecto, o cambiar prefijo de WordPress si ya nuestra instalación está funcionando.

El principio exacto por el que se basa esta idea es el de seguridad por oscuridad, que no viene siendo otra cosa que poder tener mayor confianza en que las partes sensibles de un sistema (En nuestro caso, las tablas del WordPress) van a ser más difíciles de encontrar y atacar porque existe una parte oculta (el prefijo). Hay que decir que esta técnica (Ni ninguna en general) es segura al 100%, pero nos ayudará en un porcentaje altísimo a evitar que nos den un susto.

Copias de seguridad

Independientemente de como tengas montado el tema, te conviene hacer copias de seguridad, frecuentes, y lo suficientemente completas como para restaurar tu sitio en minutos. Opciones:

  1. Programar un CRON en el servidor para hacer el backup. Es mi opción preferida siempre que el hosting lo permite. Eliges la frecuencia y lo que va a copiar, y listo. Normalmente vas a coger tanto la estructura de la web, como la bbdd asociada.
  2. Usar un plugin que te ayude con este tema. El más recomendable que conozco es duplicator; pero puede haber otros que os convenga tambien conocer.

Antes de ponerte a hacer cambios, debes hacer un backup completo, por si algo sale mal: Siempre debes poder volver atrás.

Cambiar el prefijo de la tabla

En el raiz de la instalación de wordpress encontrarás un .php que contiene toda la información de configuración de tu instalación de wordpress. Si lo vieras en el explorador de archivos, sería algo así:

cambiar prefijo de wordpress
El directorio será algo así

En este .php encontrarás una línea llamada prefix que, si no has cambiado los comentarios, será la línea 62. Cambia su contenido por el que quieras utilizar para identificar las tablas para esta instalación de WordPress:

$table_prefix  = 'wp_ejemplo_';

Sólo puedes usar quiones bajos, letras, y números. Las letras, dependiendo de la configuración del conjunto del hosting, será sensible a mayúsculas o minúsculas, así que cuidado con esto si metéis mano a los plugins desde el código.

Renombrar las tablas

Una vez cambiado el prefijo en el config, ahora tenemos que hacer en las tablas de la base de datos. Lo más rápido para hacerlo es acceder al mysql desde el phpmyadmin del hosting. Normalmente encontrarás un icono semejante a este:

phpmyadmin
Icono de phpmyadmin en cpanel

En otros paneles de control puede verse de otra manera, pero en esencia es lo mismo.

Una vez dentro, veréis algo así:

phpmyadmin cambiar prefijo de wordpressWordPress. por defecto, tiene 11 tablas. Podríamos ir modificando tabla por tabla para cambiar el nombre, o podemos hacerlo con una consulta que mas o menos nos renombre todas de una sola vez. Para nuestro caso, que hemos puesto en el prefijo wp_ejemplo_, sería así:

RENAME TABLE wp_commentmeta TO wp_ejemplo_commentmeta;
RENAME TABLE wp_options TO wp_ejemplo_options;
RENAME TABLE wp_postmeta TO wp_ejemplo_postmeta;
RENAME TABLE wp_commentmeta TO wp_ejemplo_commentmeta;
RENAME TABLE wp_posts TO wp_ejemplo_posts;
RENAME TABLE wp_terms TO wp_ejemplo_terms;
RENAME TABLE wp_term_relationships TO wp_ejemplo_term_relationships;
RENAME TABLE wp_term_taxonomy TO wp_ejemplo_term_taxonomy;
RENAME TABLE wp_commentmeta TO wp_ejemplo_commentmeta;
RENAME TABLE wp_usermeta TO wp_ejemplo_usermeta;
RENAME TABLE wp_users TO wp_ejemplo_users;

Si en nuestro WordPress tuviéramos más plugins, también tendríamos que añadir más líneas a este script, de tal manera que todas las tablas que aparezcan las renombremos.

Cambiar datos en las tablas

Luego de haber renombrado las tablas, hay que buscar todas las referencias que se hagan al wp_ dentro de las tablas options y usermeta. No hayu una manera fácil de hacerlo, sólo una consulta en cada caso e ir reescribiendo manualmente cada resultado:

SELECT * FROM wp_ejemplo_options WHERE option_name LIKE '%wp_%';
SELECT * FROM wp_ejemplo_usermeta WHERE meta_key LIKE '%wp_%';

Evidentemente, cuantos más datos tengas en el wordpress, más filas habrá que cambiar.

 

Y con esto, ya tendríamos apañado el tema. Lo suyo, sería comprobar que todo funciona correctamente, hacer una copia de seguridad con todos los cambios y a seguir disfrutando con nuestra web.

 

Volver arriba