Seguridad en PrestaShop: mejores prácticas para SysAdmin
Introducción: ¿Por qué es crítica la seguridad en PrestaShop?
Si tienes una tienda online con PrestaShop, la seguridad no es un lujo, es una necesidad. Cada día, miles de sitios web son atacados por bots, hackers y scripts maliciosos que buscan robar datos de clientes, instalar malware o secuestrar tu tienda. Como SysAdmin (administrador de sistemas), tu responsabilidad es proteger no solo la tienda, sino también la confianza de tus clientes y la integridad de tu negocio.
En este artículo, te guiaré paso a paso por las mejores prácticas de seguridad PrestaShop para que puedas proteger tienda PrestaShop de manera efectiva. No necesitas ser un experto en ciberseguridad; solo seguir estas recomendaciones al pie de la letra. Al final, tendrás una checklist clara para fortalecer tu tienda desde el servidor hasta el código.
[INFO] Recuerda: la seguridad no es un destino, es un proceso continuo. Dedica al menos 30 minutos al mes a revisar y actualizar tus medidas.
## 1. Seguridad a nivel de servidor: la base de todo
Antes de tocar PrestaShop, debes asegurarte de que el servidor donde está alojado sea robusto. Un servidor mal configurado es como una puerta abierta para los atacantes.
### 1.1. Elige un hosting confiable
No todos los hostings son iguales. Busca uno que ofrezca:
- Aislamiento de cuentas: que tu tienda no comparta recursos con sitios potencialmente infectados.
- Firewall de aplicaciones web (WAF): bloquea tráfico malicioso antes de que llegue a tu tienda.
- Copias de seguridad automáticas: al menos diarias y con retención de 30 días.
- Soporte técnico 24/7: idealmente con experiencia en PrestaShop.
Si usas un panel de control como Syspanel (antes conocido como HestiaCP), recuerda que el acceso se realiza por el puerto 2106. Configura contraseñas fuertes y cambia el puerto por defecto si es posible.
[TIP] Si tu hosting no ofrece WAF, instala un plugin como "ModSecurity" en tu servidor Apache o Nginx.
### 1.2. Mantén el sistema operativo y el panel actualizados
Las vulnerabilidades se descubren a diario. Un servidor desactualizado es un blanco fácil. Programa actualizaciones automáticas para:
- Sistema operativo (Linux/Ubuntu/Debian).
- Panel de control (Syspanel, cPanel, etc.).
- Servidor web (Apache/Nginx).
- PHP (versión 7.4 o superior, pero evita versiones obsoletas como 5.6).
[WARNING] Siempre prueba las actualizaciones en un entorno de staging antes de aplicarlas en producción. Una actualización puede romper la compatibilidad con módulos de PrestaShop.
### 1.3. Configura un firewall de red (iptables o CSF)
Un firewall de red bloquea puertos y direcciones IP no deseadas. Por ejemplo:
- Cierra los puertos 21 (FTP) y 22 (SSH) para acceso público. Solo permite conexiones desde tu IP de trabajo.
- Limita el acceso a phpMyAdmin solo desde IPs confiables.
- Usa ConfigServer Security & Firewall (CSF) si tu servidor lo soporta.
## 2. Seguridad en la instalación de PrestaShop
Una vez que el servidor está listo, toca configurar PrestaShop de manera segura desde el principio.
### 2.1. Usa la última versión estable
Siempre instala la versión más reciente de PrestaShop. Las versiones antiguas tienen vulnerabilidades conocidas. Puedes verificar la versión actual en el panel de administración o en el archivo config/defines.inc.php.
[INFO] PrestaShop 1.7 ya no recibe soporte oficial. Migra a PrestaShop 8.x lo antes posible.
### 2.2. Cambia los prefijos de las tablas de la base de datos
Durante la instalación, modifica el prefijo por defecto ps_ por uno único como m1_tienda_. Esto dificulta que los atacantes adivinen los nombres de las tablas en caso de un ataque de inyección SQL.
### 2.3. Configura contraseñas robustas
Tanto para la base de datos como para el usuario administrador, usa contraseñas de al menos 16 caracteres con mayúsculas, minúsculas, números y símbolos. Puedes generarlas con herramientas como openssl rand -base64 20.
## 3. Configuración de seguridad en el panel de administración
El back office de PrestaShop es la puerta de entrada a tu tienda. Protégela con estas medidas.
### 3.1. Cambia la URL de administración
Por defecto, el acceso es /admin o /admin123. Cámbialo a una ruta única y larga, por ejemplo: /gestion-2024-segura. Esto evita ataques automatizados que buscan rutas comunes.
Para cambiarlo:
- Ve a Parámetros de la tienda > General.
- En la sección "URL de administración", ingresa la nueva ruta.
- Guarda los cambios y actualiza el acceso directo de tu navegador.
### 3.2. Activa la autenticación de dos factores (2FA)
PrestaShop 8 incluye 2FA nativo. Actívalo en Parámetros avanzados > Seguridad. Puedes usar apps como Google Authenticator o Authy. Esto añade una capa extra: incluso si roban tu contraseña, no podrán acceder sin el código temporal.
### 3.3. Limita los intentos de inicio de sesión
En Parámetros avanzados > Seguridad, configura un máximo de 5 intentos fallidos antes de bloquear la IP durante 15 minutos. Esto frena ataques de fuerza bruta.
### 3.4. Usa HTTPS en todo el panel
Asegúrate de que el certificado SSL esté instalado y que el back office se cargue solo por HTTPS. En Parámetros de la tienda > General, marca la opción "Forzar SSL en todas las páginas".
## 4. Protección de archivos y directorios críticos
El sistema de archivos de PrestaShop es vulnerable si no se protege adecuadamente.
### 4.1. Permisos de archivos seguros
Los permisos correctos son:
- Archivos:
644(lectura/escritura para el propietario, solo lectura para grupo y otros). - Directorios:
755(lectura/ejecución para todos, escritura solo para el propietario).
Nunca uses 777 (todos los permisos). Si necesitas que ciertos directorios sean escribibles (como img, upload, config), usa 755 o 750 y asegúrate de que el usuario del servidor web (www-data, nginx) sea el propietario.
### 4.2. Bloquea el acceso a archivos sensibles
Crea un archivo .htaccess en la raíz de PrestaShop (si usas Apache) con estas reglas:
<FilesMatch "\.(tpl|php|inc|sql|log)$">
Deny from all
</FilesMatch>
Esto evita que se acceda directamente a archivos de configuración o plantillas.
### 4.3. Elimina archivos innecesarios
Después de la instalación, borra la carpeta install/ y el archivo README.md. También elimina cualquier módulo o tema que no uses. Cada archivo extra es un posible vector de ataque.
## 5. Módulos y temas: el talón de Aquiles
Los módulos de terceros son una de las principales fuentes de vulnerabilidades en PrestaShop.
### 5.1. Solo instala módulos de fuentes confiables
Descarga módulos únicamente desde el marketplace oficial de PrestaShop o de desarrolladores reconocidos. Evita sitios de descarga gratuita (nulled) porque suelen contener malware o backdoors.
### 5.2. Mantén módulos y temas actualizados
Al igual que el núcleo, los módulos deben estar en su última versión. Configura notificaciones automáticas en el back office para saber cuándo hay actualizaciones.
### 5.3. Desactiva y elimina módulos no utilizados
Un módulo inactivo pero presente sigue siendo un riesgo. Desinstálalo por completo desde Módulos > Gestor de módulos.
## 6. Monitoreo y detección de amenazas
No basta con proteger; debes vigilar constantemente.
### 6.1. Activa los logs de seguridad
PrestaShop registra intentos de inicio de sesión, cambios en archivos y transacciones sospechosas. Revisa los logs en Parámetros avanzados > Registros al menos una vez por semana.
### 6.2. Usa herramientas de monitoreo externo
Servicios como Sucuri, Wordfence (para WordPress, pero adaptable) o el módulo "PrestaShop Security" de KnowBand pueden escanear tu tienda en busca de malware, cambios no autorizados o archivos sospechosos.
### 6.3. Configura alertas por correo electrónico
En Parámetros avanzados > Seguridad, activa notificaciones para:
- Intentos de inicio de sesión fallidos.
- Cambios en archivos críticos.
- Nuevos administradores creados.
## 7. Copias de seguridad: tu red de seguridad
Incluso con las mejores medidas, un ataque puede ocurrir. Las copias de seguridad son tu último recurso.
### 7.1. Programa copias automáticas
Usa la herramienta de copia de seguridad nativa de PrestaShop (en Parámetros avanzados > Base de datos) o un script en el servidor. Recomiendo:
- Copias diarias de la base de datos.
- Copias semanales completas (archivos + base de datos).
- Almacenamiento externo (Google Drive, Dropbox, o un servidor remoto).
### 7.2. Prueba la restauración
Una copia de seguridad que no se puede restaurar no sirve de nada. Cada mes, simula una restauración en un entorno de pruebas para verificar que todo funcione.
[WARNING] Si usas Syspanel, puedes programar copias automáticas desde el panel. Recuerda que el acceso es por el puerto 2106.
## 8. Preguntas frecuentes (FAQ) sobre seguridad PrestaShop
### ¿Qué hago si detecto un ataque en mi tienda?
- Desconecta la tienda temporalmente (ponla en modo mantenimiento).
- Cambia todas las contraseñas (admin, base de datos, FTP, SSH).
- Restaura una copia de seguridad limpia de antes del ataque.
- Escanea con un antivirus web (como Sucuri) para eliminar malware.
- Actualiza PrestaShop y todos los módulos.
- Revisa los logs para entender cómo entró el atacante.
### ¿Es suficiente con tener un certificado SSL?
No. El SSL protege la comunicación entre el navegador y el servidor, pero no evita ataques como inyección SQL, XSS o fuerza bruta. Es una capa más, no la única.
### ¿Debo usar un plugin de seguridad de pago?
Depende del riesgo. Si manejas muchos datos de clientes o tienes alto tráfico, un plugin de pago (como el de KnowBand o PrestaShop Security) ofrece escaneo en tiempo real y firewall. Para tiendas pequeñas, las medidas gratuitas suelen ser suficientes.
### ¿Cómo sé si mi versión de PHP es segura?
PrestaShop 8 requiere PHP 7.4 o superior. Usa versiones con soporte activo (PHP 8.1 o 8.2). Evita PHP 8.0 que ya no recibe parches de seguridad.
### ¿Puedo usar Syspanel para gestionar la seguridad?
Sí. Syspanel (antes HestiaCP) permite configurar firewalls, gestionar usuarios, programar backups y monitorear logs. Accede por el puerto 2106 y revisa la sección de seguridad del panel.
## Conclusión: la seguridad es un hábito
Proteger tu tienda PrestaShop no es un evento único, sino un conjunto de hábitos diarios. Desde la configuración del servidor hasta la gestión de módulos, cada paso cuenta. Como SysAdmin, tu rol es ser proactivo: anticiparte a las amenazas, mantener todo actualizado y tener un plan de respuesta ante incidentes.
Empieza hoy mismo con la checklist que te he dado. No necesitas hacer todo de golpe; prioriza lo más crítico (contraseñas, actualizaciones, copias de seguridad) y ve mejorando mes a mes. Tu tienda y tus clientes te lo agradecerán.
[TIP] Comparte este artículo con otros administradores de tu equipo. La seguridad colaborativa siempre es más fuerte.
¿Tienes dudas? Déjalas en los comentarios o consulta la documentación oficial de PrestaShop. ¡Buena suerte!
