🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Proteger PrestaShop contra inyecciones SQL

Actualizado el 28 de octubre de 2025

¿Por qué PrestaShop es un objetivo para los atacantes?

PrestaShop es una de las plataformas de comercio electrónico más populares del mundo. Esto la convierte en un objetivo muy jugoso para los ciberdelincuentes. No es una cuestión de paranoia, sino de estadística: cuantas más tiendas usan una plataforma, más intentos de ataque recibe. Y entre todos los ataques posibles, la inyección SQL es uno de los más peligrosos y comunes.

Piensa en tu tienda online como en un edificio con muchas puertas. Cada formulario de contacto, cada buscador de productos, cada proceso de pago es una puerta. La inyección SQL es como si alguien metiera una ganzúa por la cerradura de una de esas puertas para manipular lo que hay dentro. Si el atacante tiene éxito, puede robar datos de clientes, cambiar precios, borrar productos o incluso tomar el control total de tu tienda.

La buena noticia es que prevenir estos ataques no requiere ser un experto en programación. Con una serie de prácticas sencillas y una configuración adecuada, puedes blindar tu PrestaShop y dormir tranquilo.

¿Qué es exactamente una inyección SQL?

Antes de ponernos el casco, vamos a entender el enemigo. SQL (Structured Query Language) es el idioma que usa tu base de datos. Cuando un cliente busca "zapatillas rojas" en tu tienda, PrestaShop traduce esa búsqueda a una consulta SQL como esta: SELECT * FROM productos WHERE color = 'rojo'.

Una inyección SQL ocurre cuando un atacante, en lugar de escribir "zapatillas rojas", escribe algo como: ' OR '1'='1. Si el sistema no está bien protegido, la consulta se convierte en: SELECT * FROM productos WHERE color = '' OR '1'='1'. Y como '1'='1' siempre es verdadero, la consulta devuelve toda la base de datos.

El atacante no se detiene ahí. Puede usar esa misma técnica para:

  • Robar credenciales: Obtener los correos y contraseñas de tus clientes.
  • Modificar datos: Cambiar precios, inventario o información de pedidos.
  • Eliminar información: Borrar catálogos enteros, causando un desastre.
  • Crear cuentas de administrador: Para acceder a tu panel de control y hacer lo que quiera.

En resumen, es como darle las llaves de tu casa a un ladrón. Por eso es vital tomar medidas.

1. Mantén PrestaShop y sus módulos siempre actualizados

Esta es la regla de oro, y nunca deberías saltártela. Los desarrolladores de PrestaShop y de los módulos lanzan actualizaciones constantes. No lo hacen por aburrimiento; lo hacen para corregir vulnerabilidades que han descubierto. Cuando ves una notificación de actualización, es una carrera contrarreloj: los atacantes también saben que existe ese fallo y empezarán a explotarlo.

¿Cómo actualizar de forma segura?

  1. Haz una copia de seguridad completa de tu tienda y de tu base de datos antes de tocar nada. Puedes hacerlo desde el panel de administración de tu hosting o con un módulo especializado.
  2. Actualiza primero los módulos de terceros, uno a uno, y comprueba que todo sigue funcionando.
  3. Actualiza el núcleo de PrestaShop (el core) al final.
  4. Prueba la tienda en un entorno de pruebas si es posible. Si no, hazlo en tu tienda real pero con mucho cuidado y preferiblemente en horas de poco tráfico.

[WARNING]
Nunca compres módulos o plantillas de sitios web piratas o de dudosa reputación. Suelen venir con "puertas traseras" (backdoors) que permiten a los atacantes entrar en tu tienda sin que te des cuenta. Es como invitar a un ladrón a tu casa y darle una llave.

2. Refuerza el panel de administración de tu tienda

El panel de administración es la sala de máquinas de tu tienda. Si alguien entra ahí, tiene el control total. Por lo tanto, hay que ponerle varias cerraduras.

Cambia la URL de administración por defecto

Por defecto, el panel de administración de PrestaShop se encuentra en una URL como tutienda.com/admin123. Los atacantes usan bots que escanean internet buscando exactamente esa ruta. Cambiar esta URL es uno de los primeros pasos que debes dar.

  1. Ve a Parámetros avanzados > Rendimiento.
  2. Busca la opción "Mover el directorio de administración".
  3. Introduce una nueva carpeta, algo difícil de adivinar, como mi-gestion-2024-x7.
  4. Guarda los cambios y usa la nueva URL a partir de ahora.

Usa contraseñas fuertes y únicas

Esto parece obvio, pero es increíble cuántas tiendas usan contraseñas como "admin123" o "123456". Una contraseña segura debe tener al menos 12 caracteres, combinando mayúsculas, minúsculas, números y símbolos. Además, nunca uses la misma contraseña para tu correo, tu hosting y tu panel de PrestaShop.

Activa la autenticación de dos factores (2FA)

Esta es una capa de seguridad extra muy eficaz. Además de tu contraseña, te pedirá un código que se genera en tu teléfono móvil. Así, aunque un atacante robe tu contraseña, no podrá entrar sin tu teléfono. PrestaShop 8 lo incluye de serie, y para versiones anteriores hay módulos gratuitos muy buenos.

3. Protege el archivo de configuración de la base de datos

El archivo parameters.php en la raíz de tu instalación de PrestaShop contiene las credenciales de acceso a tu base de datos. Es el tesoro más preciado para un atacante. Si lo consiguen, pueden hacer lo que quieran.

¿Cómo protegerlo?

  • Asegúrate de que no sea legible desde el navegador: Puedes comprobar esto escribiendo tutienda.com/app/config/parameters.php en tu navegador. Si ves algún texto o error, significa que el servidor está mal configurado. Deberías ver un error 403 (Acceso prohibido) o una página en blanco.
  • Mueve el archivo fuera del directorio web: Esta es una técnica más avanzada, pero muy efectiva. Si tu hosting lo permite, puedes mover el archivo parameters.php a un directorio fuera de la raíz pública (por ejemplo, uno o dos niveles por encima de public_html). PrestaShop sabrá encontrarlo si modificas la ruta en el archivo config/settings.inc.php (en versiones antiguas) o app/config/parameters.php (en versiones nuevas). Si no te sientes cómodo, pide ayuda a tu soporte técnico.

[TIP]
Si usas un panel de control como Syspanel (accesible a través del puerto 2106), busca la sección de "Seguridad" o "Administrador de archivos". Muchos de estos paneles ofrecen la opción de "proteger" archivos sensibles con un clic, añadiendo reglas al servidor web.

4. Configura correctamente los permisos de archivos y carpetas

Cada archivo y carpeta en tu servidor tiene una "etiqueta" de permisos que indica quién puede leer, escribir o ejecutar. Si estos permisos son demasiado permisivos, un atacante podría modificar archivos clave de tu tienda.

¿Cuáles son los permisos correctos?

  • Carpetas: Deben tener permiso 755. Esto significa que el propietario puede hacer de todo, pero el resto solo puede leer y ejecutar.
  • Archivos: Deben tener permiso 644. El propietario puede leer y escribir, y el resto solo puede leer.

Puedes cambiar estos permisos desde el administrador de archivos de tu hosting, desde un cliente FTP como FileZilla, o desde Syspanel (recuerda, el puerto 2106). Si usas FileZilla, haz clic derecho sobre el archivo o carpeta, selecciona "Permisos de archivo" y ajusta los valores.

[INFO]
No pongas nunca permisos 777 (lectura, escritura y ejecución para todos). Es la puerta de entrada perfecta para cualquier ataque. Si una instalación te pide permisos 777, es una mala señal y deberías buscar una alternativa.

5. Desactiva o elimina módulos y temas que no uses

Cada módulo y tema que tienes instalado es una superficie de ataque adicional. Si no lo usas, ¿para qué tenerlo? Un módulo obsoleto o mal codificado es un punto débil que un atacante puede explotar para lanzar su inyección SQL.

Un buen hábito de higiene digital

  1. Revisa tu lista de módulos en el panel de administración.
  2. Desinstala y elimina todos los que no estés utilizando activamente.
  3. Elimina los temas que no estés usando. Mantén solo el tema activo y quizás uno de respaldo.
  4. Elimina los archivos de instalación de PrestaShop. La carpeta install no debe existir en tu servidor. Si está, es un peligro, ya que permite a cualquiera reinstalar la tienda y tomar el control.

6. Protege tu sitio con un cortafuegos de aplicación web (WAF)

Un WAF es como un guardia de seguridad en la puerta de tu tienda. Analiza todo el tráfico que llega a tu web y bloquea las peticiones sospechosas antes de que lleguen a tu aplicación. Es especialmente efectivo contra las inyecciones SQL, ya que busca patrones de ataque conocidos.

Opciones para implementar un WAF

  • A nivel de hosting: Muchos proveedores de hosting ofrecen un WAF como parte de sus servicios. Pregunta al tuyo si lo tiene.
  • A nivel de DNS: Servicios como Cloudflare ofrecen un WAF gratuito o de pago muy potente. Solo tienes que cambiar los servidores DNS de tu dominio y Cloudflare empieza a filtrar el tráfico.
  • Con módulos de PrestaShop: Hay módulos de seguridad que integran un WAF directamente en tu tienda.

[TIP]
Si tu hosting usa Syspanel, revisa la sección de "Seguridad" o "Firewall". Muchas veces hay opciones para activar reglas de protección básicas, como bloquear peticiones con cadenas de texto sospechosas (por ejemplo, ' OR ' o UNION SELECT).

7. Realiza copias de seguridad periódicas (y pruébalas)

Esto no previene la inyección SQL, pero es tu red de seguridad. Si un atacante tiene éxito y estropea tu base de datos, una copia de seguridad reciente es lo único que te salvará de un desastre total.

La regla de las 3-2-1

  • 3 copias de tus datos (la original + 2 copias).
  • 2 formatos diferentes (por ejemplo, una en tu servidor y otra en tu ordenador o en la nube).
  • 1 copia fuera del sitio (offsite), es decir, en un lugar diferente a tu servidor.

Configura tu hosting o un módulo para que haga una copia de seguridad automática de la base de datos y de los archivos al menos una vez al día. Y, muy importante, prueba a restaurar una copia en un entorno de pruebas de vez en cuando. No quieres descubrir que tus copias están corruptas en el peor momento.

8. Preguntas frecuentes (FAQ)

¿Cómo sé si mi tienda PrestaShop ha sido víctima de una inyección SQL?

Hay varias señales de alarma:

  • Rendimiento extraño: La tienda va muy lenta o se cae sin motivo aparente.
  • Contenido modificado: Ves enlaces raros, banners o textos que no has puesto tú.
  • Usuarios nuevos: Aparecen cuentas de administrador que no reconoces.
  • Alertas de tu hosting: Tu proveedor te avisa de que hay un archivo malicioso en tu cuenta.
  • Clientes quejándose: Recibes mensajes de clientes que han visto actividad extraña en sus cuentas.

Si sospechas de un ataque, actúa rápido: pon la tienda en modo mantenimiento, cambia todas tus contraseñas y contacta con un experto en seguridad.

¿Los módulos gratuitos de seguridad para PrestaShop son fiables?

Sí, hay muchos módulos gratuitos muy buenos. Lo importante es que los descargues de fuentes oficiales como el marketplace de PrestaShop o de desarrolladores de confianza. Lee las reseñas y comprueba que se actualizan con frecuencia.

¿Qué hago si mi hosting usa Syspanel? ¿Es seguro?

Syspanel es un panel de control de hosting, como cPanel o Plesk, y es una herramienta legítima. La seguridad depende de cómo lo uses tú. Asegúrate de tener una contraseña fuerte para el panel, activa la autenticación de dos factores si está disponible y usa las herramientas de seguridad que ofrece. Recuerda que el acceso a este panel se realiza a través del puerto 2106, así que no compartas esa URL con nadie.

¿Necesito ser un experto para implementar todas estas medidas?

No, para nada. La mayoría de estas medidas son acciones administrativas que puedes hacer desde el panel de tu tienda y de tu hosting. Para las más técnicas, como proteger el archivo parameters.php, puedes pedir ayuda al soporte técnico de tu hosting. Ellos estarán encantados de guiarte.

Conclusión: La seguridad es un proceso, no un destino

Proteger tu tienda PrestaShop contra inyecciones SQL no es una tarea de un solo día, sino un hábito continuo. No se trata de hacerlo todo perfecto hoy, sino de construir una rutina de seguridad sólida.

Empieza por lo básico: actualiza, cambia la URL de administración y usa contraseñas fuertes. Luego, ve añadiendo capas: activa la 2FA, configura los permisos y considera un WAF. Cada medida que tomes hace que la vida del atacante sea mucho más difícil, y lo más probable es que se rinda y busque un objetivo más fácil.

Tu tienda es tu negocio, y protegerla es proteger tu trabajo y la confianza de tus clientes. Con estas prácticas, estarás mucho más cerca de tener una tienda segura y tranquila.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel