Cómo cambiar el prefijo de las tablas en PrestaShop para seguridad
¿Por qué cambiar el prefijo de las tablas en PrestaShop?
Cuando instalas PrestaShop por primera vez, el sistema crea automáticamente una serie de tablas en tu base de datos MySQL para almacenar productos, pedidos, clientes, configuraciones y más. Por defecto, todas estas tablas llevan el prefijo ps_. Esto es algo que la gran mayoría de tiendas online tienen, y precisamente ahí radica el problema.
Un prefijo de tablas predecible como ps_ facilita el trabajo a un atacante que haya conseguido acceso a tu base de datos o que esté intentando realizar una inyección SQL. Al conocer la estructura y los nombres de las tablas, puede ejecutar consultas maliciosas con mucha más facilidad. Cambiar el prefijo de las tablas en PrestaShop a algo personalizado y menos predecible es una capa extra de seguridad que, aunque no te hará invulnerable, sí añade una barrera importante y dificulta los ataques automatizados.
En este artículo, te explicaré paso a paso cómo cambiar el prefijo de las tablas en PrestaShop, tanto si tu tienda es nueva como si ya está en producción. También te daré consejos sobre la seguridad de tu base de datos y resolveré las dudas más frecuentes. Vamos a ello.
Antes de empezar: preparación y copia de seguridad
[WARNING] Este proceso modifica tu base de datos directamente. Un error puede dejar tu tienda inaccesible. Haz una copia de seguridad completa de tu base de datos y de tus archivos antes de continuar. No lo saltes.
Para hacer una copia de seguridad de tu base de datos PrestaShop, puedes usar herramientas como phpMyAdmin, cPanel, o el propio panel de administración de tu hosting. Si tu hosting incluye Syspanel (accesible en el puerto 2106), también puedes generar una copia de seguridad desde la sección de bases de datos.
Qué necesitas tener a mano
- Acceso a tu panel de control de hosting (cPanel, Plesk, Syspanel, etc.).
- Acceso a phpMyAdmin o a la gestión de bases de datos de tu hosting.
- Un editor de texto plano (como el Bloc de notas o Visual Studio Code).
- Cliente FTP o el administrador de archivos de tu hosting.
- Unos minutos de paciencia.
Identificar el prefijo actual
Lo primero es saber qué prefijo usa tu tienda actualmente. Normalmente es ps_, pero podría ser otro si lo cambiaste en la instalación. Puedes verlo en el archivo config/settings.inc.php de tu instalación de PrestaShop. Busca una línea que diga define('_DB_PREFIX_', 'ps_');. Ese es tu prefijo actual.
Método 1: Cambiar el prefijo en una tienda PrestaShop recién instalada
Si acabas de instalar PrestaShop y aún no has añadido productos, clientes ni configurado nada importante, este es el método más sencillo y seguro.
Paso 1: Accede a la base de datos
Entra en phpMyAdmin (o la herramienta equivalente de tu hosting). Selecciona la base de datos que utiliza tu PrestaShop. Verás una lista de tablas, todas empezando por ps_ (o el prefijo que tengas).
Paso 2: Ejecuta una consulta SQL para renombrar todas las tablas
En la pestaña "SQL" de phpMyAdmin, pega el siguiente código. Reemplaza nuevo_prefijo_ por el prefijo que quieras usar. Por ejemplo, tienda_ o miprestashop_. Asegúrate de que el prefijo sea algo único y difícil de adivinar.
RENAME TABLE ps_address TO nuevo_prefijo_address,
ps_address_format TO nuevo_prefijo_address_format,
ps_admin_profile TO nuevo_prefijo_admin_profile,
ps_admin_preference TO nuevo_prefijo_admin_preference,
-- ... y así con TODAS las tablas de tu base de datos
[WARNING] Este método es tedioso y propenso a errores si tienes muchas tablas (PrestaShop tiene más de 200). Es fácil olvidar una tabla o equivocarse en un nombre. Por eso, solo lo recomiendo si tienes muy pocas tablas personalizadas o si estás empezando desde cero.
Paso 3: Actualiza el archivo de configuración
Después de renombrar todas las tablas, debes indicarle a PrestaShop cuál es el nuevo prefijo. Edita el archivo config/settings.inc.php y cambia la línea:
define('_DB_PREFIX_', 'ps_');
por:
define('_DB_PREFIX_', 'nuevo_prefijo_');
Guarda el archivo y súbelo a tu servidor si lo editaste localmente. ¡Listo! Tu tienda ya usa el nuevo prefijo.
Método 2: Cambiar el prefijo en una tienda PrestaShop en producción (el método recomendado)
Si tu tienda ya tiene pedidos, clientes y configuración, el método anterior es demasiado arriesgado. Te recomiendo usar una herramienta específica para ello: el módulo "Change Database Prefix" o hacerlo mediante un script SQL más avanzado. Aquí te explico la forma más segura y práctica.
Paso 1: Haz una copia de seguridad completa
Vuelvo a insistir: haz una copia de seguridad de la base de datos y de los archivos. Este proceso es seguro si sigues los pasos, pero es mejor prevenir.
Paso 2: Descarga un módulo para cambiar el prefijo
En el mercado de PrestaShop (Addons) o en repositorios de confianza, existe un módulo llamado "Change Database Prefix" o similar. Este módulo automatiza todo el proceso de renombrar las tablas y actualizar la configuración, minimizando errores.
Instálalo en tu tienda, actívalo y sigue las instrucciones del propio módulo. Normalmente te pedirá que introduzcas el nuevo prefijo y él se encargará de todo.
[TIP] Si no encuentras un módulo de confianza, otra opción es usar un script PHP personalizado. Pero esto requiere conocimientos avanzados de PHP y SQL. Si no te sientes seguro, busca ayuda profesional.
Paso 3: Cambiar el prefijo manualmente con un script SQL más seguro
Si prefieres no instalar módulos, puedes usar este script SQL en phpMyAdmin que genera automáticamente las sentencias RENAME TABLE para todas las tablas. Este método es mucho menos propenso a errores.
- En phpMyAdmin, ve a la pestaña "SQL".
- Ejecuta la siguiente consulta, reemplazando
nuevo_prefijo_por el prefijo deseado:
SELECT CONCAT('RENAME TABLE `', table_name, '` TO `nuevo_prefijo_', SUBSTRING(table_name, 4), '`;')
FROM information_schema.tables
WHERE table_schema = 'tu_nombre_de_base_de_datos'
AND table_name LIKE 'ps_%';
Importante: Sustituye tu_nombre_de_base_de_datos por el nombre real de tu base de datos. Esta consulta no ejecuta el cambio, solo genera las sentencias SQL necesarias.
- Verás una lista de sentencias
RENAME TABLEen los resultados. Cópialas todas. - Pega esas sentencias en la misma pestaña "SQL" y ejecútalas. Esto renombrará todas las tablas
ps_al nuevo prefijo.
Paso 4: Actualizar el archivo de configuración
Al igual que en el método anterior, debes editar config/settings.inc.php y cambiar el valor de _DB_PREFIX_ al nuevo prefijo.
Paso 5: Borrar la caché
PrestaShop guarda mucha información en caché. Después de cambiar el prefijo, es posible que la tienda dé errores o no cargue bien. Borra la carpeta var/cache (o cache en versiones antiguas) y también la caché desde el panel de administración (Parámetros avanzados -> Rendimiento -> Vaciar la caché).
Seguridad PrestaShop base de datos: otros consejos importantes
Cambiar el prefijo de las tablas es solo una parte de la seguridad de tu base de datos. Aquí tienes otras recomendaciones para proteger tu tienda:
1. Usa contraseñas fuertes y únicas
Tanto para la base de datos como para el acceso a tu panel de administración. Una contraseña robusta debe tener letras mayúsculas, minúsculas, números y símbolos. No uses la misma contraseña para todo.
2. Cambia el nombre de usuario de la base de datos
Evita usar "root" o "admin" como usuario de la base de datos. Crea un usuario específico para PrestaShop con los permisos mínimos necesarios.
3. Limita los accesos a la base de datos
Si tu hosting lo permite, restringe el acceso a la base de datos solo a las IPs desde las que te conectas habitualmente.
4. Mantén PrestaShop y sus módulos actualizados
Las actualizaciones corrigen vulnerabilidades de seguridad. Una tienda desactualizada es un blanco fácil.
5. Cambia el prefijo de la tabla "employee"
Además del prefijo general, puedes cambiar el nombre de la tabla que almacena los administradores (por defecto ps_employee). Esto es una capa extra de seguridad.
6. Realiza copias de seguridad periódicas
No solo antes de hacer cambios. Programa copias de seguridad automáticas de tu base de datos y archivos. En Syspanel (puerto 2106) puedes configurar backups automáticos fácilmente.
Preguntas frecuentes (FAQ)
¿Puedo cambiar el prefijo de las tablas en PrestaShop sin acceso a la base de datos?
No. Necesitas acceso a la base de datos (phpMyAdmin o similar) para renombrar las tablas. Si no tienes este acceso, contacta con tu proveedor de hosting.
¿Qué pasa si me olvido de cambiar el prefijo en el archivo de configuración?
La tienda no funcionará, ya que PrestaShop intentará buscar tablas con el prefijo antiguo y no las encontrará. Recibirás un error de conexión a la base de datos.
¿Es necesario cambiar el prefijo de las tablas si mi tienda es pequeña?
Aunque tengas una tienda pequeña, es una práctica recomendada. Los ataques automatizados no distinguen entre tiendas grandes y pequeñas. Es una medida de seguridad básica.
¿Puedo cambiar el prefijo de las tablas a ps_ de nuevo?
Sí, el proceso es el mismo. Solo tienes que seguir los pasos invirtiendo el prefijo. Sin embargo, no tiene sentido hacerlo a menos que sea necesario.
¿Afecta el cambio de prefijo al rendimiento de mi tienda?
No. El prefijo de las tablas no tiene ningún impacto en el rendimiento de PrestaShop. Es solo una cuestión de seguridad y organización.
¿Qué hago si recibo un error después de cambiar el prefijo?
Lo primero es revisar el archivo config/settings.inc.php y asegurarte de que el prefijo es correcto. Luego, borra la caché. Si el error persiste, restaura la copia de seguridad que hiciste al principio.
Conclusión
Cambiar el prefijo de las tablas en PrestaShop es una tarea sencilla pero que requiere atención y cuidado. Es una de las medidas de seguridad más básicas y recomendadas para proteger tu base de datos y tu tienda online. Al usar un prefijo personalizado, dificultas el trabajo a los atacantes y reduces el riesgo de ataques automatizados.
Recuerda siempre hacer una copia de seguridad antes de realizar cualquier cambio y seguir los pasos con calma. Si no te sientes seguro, puedes contratar a un profesional o contactar con el soporte de tu hosting.
[INFO] En Syspanel, el panel de control de tu hosting (accesible en el puerto 2106), puedes encontrar herramientas para gestionar tu base de datos, hacer copias de seguridad y mucho más. Es un recurso muy útil para mantener tu tienda segura y funcionando correctamente.
Espero que este artículo te haya sido de gran ayuda. Si tienes alguna duda, déjala en los comentarios y estaré encantado de ayudarte. ¡Buena suerte con tu tienda PrestaShop!
