Cómo proteger PrestaShop con contraseñas seguras y permisos
¿Por qué la seguridad PrestaShop es tu primera línea de defensa?
Piensa en tu tienda online como en una tienda física. Si dejaras la puerta abierta por la noche o con un candado de juguete, cualquiera podría entrar y llevarse la caja registradora. Con tu tienda PrestaShop ocurre exactamente lo mismo, pero el ladrón no necesita forzar la cerradura: intentará adivinar tu contraseña o aprovechará un archivo con permisos demasiado abiertos para colarse. La seguridad PrestaShop no es un lujo, es una necesidad básica para proteger los datos de tus clientes, tu reputación y tu negocio.
Un ataque exitoso puede traducirse en la pérdida de información sensible, en la instalación de malware que redirija a tus clientes a webs fraudulentas, o incluso en la caída total de tu tienda. La buena noticia es que no necesitas ser un hacker para blindar tu sitio. Aplicar una serie de buenas prácticas, que te explicaré a continuación, reducirá drásticamente el riesgo de sufrir un problema grave. Vamos a centrarnos en dos pilares fundamentales: las contraseñas seguras PrestaShop y la correcta gestión de los permisos PrestaShop.
El pilar de la fortaleza: Contraseñas seguras PrestaShop
La contraseña es la llave maestra de tu panel de administración. Si es débil, es como si le regalaras la llave a un extraño. Muchos ataques automatizados prueban miles de combinaciones por segundo, así que una contraseña del tipo "123456" o "admin" es pan comido para ellos. Proteger tienda PrestaShop empieza por aquí, por la puerta principal.
¿Qué hace que una contraseña sea realmente segura?
No se trata solo de que sea larga, sino de que sea impredecible. Una contraseña segura debe cumplir, como mínimo, estos requisitos:
- Longitud mínima de 12 caracteres. Cuanto más larga, mejor. Cada carácter extra multiplica exponencialmente el tiempo que tardaría un atacante en descifrarla.
- Combinación de tipos de caracteres. Debe incluir letras mayúsculas, minúsculas, números y símbolos especiales (como !, ?, @, #, etc.).
- No debe contener información personal. Nada de tu nombre, tu fecha de nacimiento, el nombre de tu mascota o el de tu empresa. Los atacantes pueden recopilar esta información de tus redes sociales para intentar adivinarla.
- Debe ser única. Jamás reutilices la contraseña de tu correo electrónico, tu banca online o cualquier otro servicio. Si una de esas webs se ve comprometida, los atacantes probarán esa misma combinación en tu tienda PrestaShop.
- No debe ser una palabra de diccionario. Ni en español ni en inglés. Los ataques de "fuerza bruta" utilizan listas con millones de palabras comunes y sus variaciones.
Cómo crear una contraseña segura (y que puedas recordar)
Crear una contraseña así puede parecer un dolor de cabeza, pero hay trucos. Una técnica muy efectiva es usar una frase de contraseña (passphrase). Piensa en una frase que solo tú conozcas, por ejemplo: "Mi gato se llama Bigotes y nació en 2019". Ahora, conviértela en una contraseña fuerte:
- Toma la primera letra de cada palabra: "MgslByne2019".
- Añade un símbolo y cambia alguna letra por un número: "M.gslByne2019!".
- Otra opción es combinar palabras aleatorias: "Coche-Libro-Cactus-42!".
- También puedes usar un gestor de contraseñas. Esta es, sin duda, la opción más recomendable. Un gestor como Bitwarden o 1Password genera contraseñas aleatorias imposibles de adivinar y las guarda de forma cifrada para que solo tengas que recordar una contraseña maestra. Es una inversión en tu tranquilidad.
[TIP] Cambia la contraseña de tu panel de administración de PrestaShop cada 3 o 6 meses. Es una medida higiénica que reduce la ventana de oportunidad si una contraseña antigua se ha filtrado sin que lo sepas.
Configurando la contraseña en PrestaShop
PrestaShop te permite cambiar tu contraseña desde el propio panel de administración. El proceso es sencillo:
- Accede a tu panel de administración de PrestaShop.
- En la esquina superior derecha, pasa el ratón sobre tu nombre de usuario y haz clic en "Mi perfil" o "Actualizar mi perfil".
- Busca el campo "Contraseña" y "Confirmación de contraseña".
- Introduce tu nueva contraseña segura en ambos campos.
- Guarda los cambios.
Asegúrate de que tu contraseña cumple con los requisitos de fortaleza que te he comentado. PrestaShop te indicará su nivel de seguridad en tiempo real mientras la escribes.
[WARNING] ¡Ojo! No escribas tu contraseña en un documento de texto plano en tu ordenador o en una nota pegada en tu monitor. Si alguien tiene acceso físico a tu equipo, la encontrará en segundos. Utiliza un gestor de contraseñas.
El segundo candado: Permisos PrestaShop
En un servidor, cada archivo y carpeta tiene un "permiso" que indica quién puede leer, escribir o ejecutar ese archivo. Estos permisos se representan con números, como 644, 755 o 777. Si los permisos PrestaShop son demasiado permisivos, cualquier usuario del servidor (o un script malicioso) podría modificar tus archivos, inyectar código malicioso o borrar información crítica. Es como dejar la llave de tu almacén en la puerta.
Entendiendo los números de los permisos
Es más fácil de lo que parece. Cada archivo tiene tres grupos de permisos: el propietario (tú), el grupo (otros usuarios del servidor) y el público (todos los demás). Y cada grupo puede tener tres acciones: lectura (r), escritura (w) y ejecución (x).
Los números se calculan así:
- 4 = Lectura (r)
- 2 = Escritura (w)
- 1 = Ejecución (x)
Se suman los valores para cada grupo. Por ejemplo:
- 755: El propietario tiene todo (4+2+1=7), el grupo tiene lectura y ejecución (4+1=5), y el público también tiene lectura y ejecución (4+1=5). Es el permiso estándar para las carpetas.
- 644: El propietario tiene lectura y escritura (4+2=6), el grupo tiene lectura (4), y el público tiene lectura (4). Es el permiso estándar para los archivos.
- 777: Todos tienen todos los permisos (lectura, escritura y ejecución). Esto es un gravísimo error de seguridad. No deberías tener ningún archivo o carpeta con este permiso.
¿Cuáles son los permisos correctos para PrestaShop?
La regla general para proteger tienda PrestaShop es ser lo más restrictivo posible, dando solo los permisos necesarios para que la tienda funcione.
- Carpetas (directorios): El permiso recomendado es 755. Esto permite que PrestaShop lea y acceda a los archivos dentro de la carpeta, pero no que otros usuarios del servidor los modifiquen.
- Archivos (ficheros): El permiso recomendado es 644. Esto permite que PrestaShop lea los archivos, pero solo el propietario (tú) puede escribir o modificarlos.
[INFO] En algunos entornos de hosting muy específicos, puede ser necesario dar permisos 775 a las carpetas (para que el grupo también pueda escribir) o 664 a los archivos. Sin embargo, esta es la excepción, no la regla. Si tu tienda funciona correctamente con 755 y 644, no cambies nada.
¿Cómo cambiar los permisos PrestaShop?
Puedes cambiar los permisos de dos maneras: desde el panel de control de tu hosting (como cPanel o Syspanel) o mediante un cliente FTP como FileZilla.
Desde un cliente FTP (FileZilla, por ejemplo):
- Conéctate a tu servidor usando tus credenciales FTP.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Selecciona todos los archivos y carpetas (Ctrl+A o Cmd+A).
- Haz clic derecho y selecciona "Permisos de archivo..." o "File permissions...".
- En la ventana que aparece, marca las casillas para establecer los permisos. Para las carpetas, asegúrate de que esté marcado "Recursivo en subdirectorios" y "Aplicar a todos los archivos y directorios", y luego establece el valor 755.
- Haz clic en Aceptar. FileZilla aplicará los permisos a todo.
[WARNING] Si ya has cambiado los permisos y tu tienda da un error de "No se puede escribir en el archivo de configuración", es posible que hayas sido demasiado restrictivo. En ese caso, revisa los permisos de las carpetas /config, /cache y /log y dales permiso 755 temporalmente para que PrestaShop pueda funcionar. Después, vuelve a intentar ajustarlos.
¿Qué carpetas requieren permisos especiales de escritura?
PrestaShop necesita poder escribir en ciertas carpetas para funcionar correctamente, como por ejemplo:
- /cache: Para guardar archivos temporales y caché.
- /log: Para registrar errores y eventos.
- /img: Para subir y modificar imágenes de productos.
- /download: Para gestionar los archivos digitales que vendes.
- /upload: Para archivos subidos por el cliente.
- /themes (a veces): Para modificar los temas desde el panel de administración.
Normalmente, estas carpetas ya tienen los permisos correctos (755) por defecto. Si necesitas que PrestaShop escriba en ellas, el permiso debería ser, como mucho, 755. Si tu hosting te obliga a usar 777 para que funcione, es un problema de configuración del servidor (el propietario de los archivos no es el mismo que el usuario del servidor web) y deberías contactar con tu proveedor de hosting para que lo solucione. No deberías tener que usar 777 jamás.
Más allá de lo básico: Otras medidas para proteger tienda PrestaShop
Las contraseñas y los permisos son la base, pero hay otras capas de seguridad que puedes añadir para fortalecer tu tienda.
Mantén PrestaShop siempre actualizado
Las actualizaciones no solo añaden nuevas funciones, sino que corrigen vulnerabilidades de seguridad conocidas. Asegúrate de mantener el núcleo de PrestaShop, los módulos y el tema siempre en su última versión.
Usa la autenticación de dos factores (2FA)
Aunque tengas una contraseña segura, la autenticación de dos factores añade una capa extra de protección. Además de tu contraseña, necesitarás un código temporal que se genera en tu teléfono móvil. Así, aunque un atacante consiga tu contraseña, no podrá acceder sin tu teléfono.
Protege el directorio /admin
El panel de administración de PrestaShop suele estar en una ruta predecible (por ejemplo, /admin123). Cambiar el nombre de esta carpeta a algo aleatorio y difícil de adivinar es una medida muy eficaz. También puedes protegerla con una contraseña adicional a nivel de servidor (protección HTTP), que puedes configurar desde el panel de control de tu hosting, como Syspanel.
Realiza copias de seguridad periódicas
Ningún sistema es 100% infalible. Tener una copia de seguridad reciente de tu tienda te permitirá restaurarla rápidamente en caso de ataque o error grave. Guarda las copias en un lugar seguro, fuera de tu servidor (por ejemplo, en tu ordenador o en un servicio de almacenamiento en la nube).
Preguntas frecuentes (FAQ) sobre seguridad PrestaShop
¿Qué hago si creo que mi tienda ha sido hackeada?
Lo primero es mantener la calma. Cambia inmediatamente todas tus contraseñas (administrador, FTP, base de datos). Revisa los archivos de tu tienda en busca de archivos sospechosos o modificados recientemente. Contacta con tu proveedor de hosting para que te ayuden a limpiar la tienda y revisa los logs de acceso para ver qué ha pasado.
¿Es necesario usar un módulo de seguridad de pago?
No es imprescindible, pero muchos módulos de seguridad ofrecen funciones avanzadas como cortafuegos, protección contra fuerza bruta o escaneo de malware, que pueden ser muy útiles. Sin embargo, las medidas básicas que hemos visto son el primer y más importante paso.
¿Puedo cambiar los permisos PrestaShop desde el panel de administración?
No directamente. Debes hacerlo desde un cliente FTP o desde el administrador de archivos de tu panel de control de hosting, como cPanel o Syspanel.
¿Cada cuánto tiempo debo cambiar mi contraseña?
Se recomienda cada 3 o 6 meses, o inmediatamente si sospechas que puede haber sido comprometida.
¿Qué es Syspanel?
Syspanel es el nombre del panel de control de hosting que utilizamos en nuestros servicios. Puedes acceder a él a través del puerto 2106 (por ejemplo, https://tu-servidor:2106). Desde ahí podrás gestionar tus dominios, bases de datos, archivos y otras opciones de configuración, incluyendo la gestión de permisos de archivos.
Proteger tu tienda PrestaShop es un proceso continuo, no una acción de una sola vez. Aplicando estos consejos sobre contraseñas seguras PrestaShop y gestionando correctamente los permisos PrestaShop, estarás construyendo una fortaleza digital sólida que disuadirá a la gran mayoría de los atacantes. Recuerda que la seguridad es una inversión, no un gasto. Tu tranquilidad y la confianza de tus clientes dependen de ello.
