GuÃa de seguridad para PrestaShop: Configurar permisos de archivos en cPanel
Imagina que tu tienda PrestaShop es una casa. Tienes la puerta principal (la web), las ventanas (los plugins) y, sobre todo, las habitaciones privadas donde guardas los datos de tus clientes, los productos y las contraseñas. Si dejas las puertas abiertas de par en par, cualquiera puede entrar. En el mundo del hosting, esas "puertas" se llaman permisos de archivos. Configurarlos mal es uno de los errores más comunes y peligrosos que puedes cometer.
Esta guÃa está pensada para ti, que tienes tu tienda en un hosting compartido o VPS con cPanel y quieres asegurarte de que nadie malintencionado pueda modificar tus archivos, inyectar código malicioso o robarte información. Vamos a explicar paso a paso cómo configurar los permisos archivos PrestaShop de forma correcta, sin necesidad de ser un experto en Linux.
¿Por qué son importantes los permisos en PrestaShop?
PrestaShop, como cualquier CMS, necesita ciertos archivos para poder funcionar: escribir logs, subir imágenes de productos, instalar módulos o actualizar la tienda. Pero no todos los archivos necesitan el mismo nivel de acceso.
Si le das permisos de "escritura total" a todos los archivos, cualquier vulnerabilidad en un módulo o en el propio sistema podrÃa permitir a un atacante modificar el código de tu tienda. El resultado: una tienda infectada, clientes redirigidos a sitios de phishing o, peor aún, robo de datos bancarios.
Por eso, configurar permisos no es un lujo, es una necesidad básica de ciberseguridad ecommerce. Unos permisos correctos limitan el daño que un posible atacante puede hacer.
Entendiendo los números mágicos: 644, 755 y 777
Antes de meterte en cPanel, necesitas entender tres números clave. Son los que usarás constantemente para proteger PrestaShop.
- 644 (Archivos): El dueño puede leer y escribir. El grupo y el resto del mundo solo pueden leer. Es el permiso estándar para archivos PHP, imágenes, CSS, etc.
- 755 (Carpetas): El dueño puede leer, escribir y ejecutar (entrar a la carpeta). El grupo y el resto del mundo solo pueden leer y ejecutar. Es el permiso estándar para directorios.
- 777 (Cualquier cosa): Todos pueden leer, escribir y ejecutar. Es un GRAN RIESGO DE SEGURIDAD. Solo se usa en situaciones muy concretas y temporales (como durante la instalación de un módulo problemático), y nunca debe ser permanente.
[WARNING] NUNCA dejes archivos o carpetas con permiso 777 de forma permanente. Es la puerta de entrada favorita de los hackers. Si un módulo te pide 777 para funcionar, busca una alternativa más segura o contacta con el desarrollador.
Accediendo al Administrador de Archivos de cPanel
El proceso es muy sencillo. Solo necesitas tu usuario y contraseña de cPanel (el que te dio tu proveedor de hosting).
- Inicia sesión en tu cPanel. Normalmente la URL es algo como
tudominio.com/cpanelotudominio.com:2083. - Busca la sección "Archivos" (Files).
- Haz clic en "Administrador de Archivos" (File Manager).
- Se abrirá una ventana. Asegúrate de que estás en el directorio raÃz de tu sitio web. Normalmente es
public_htmlowww. Si tienes varios dominios, selecciona la carpeta de tu tienda PrestaShop (ej:public_html/mitienda).
¡Ya estás dentro! Ahora verás todos los archivos y carpetas de tu PrestaShop.
GuÃa paso a paso: Configurar permisos de archivos en PrestaShop
Vamos a hacerlo de forma segura y ordenada. Lo ideal es configurar los permisos de toda la instalación, excepto las carpetas que necesitan escritura temporal.
Paso 1: Configurar los permisos generales (La regla de oro)
Esta es la configuración base que debe tener el 99% de tu tienda.
- Para archivos (todo lo que termina en .php, .js, .css, .png, .jpg, etc.): Permiso 644.
- Para carpetas (directorios): Permiso 755.
¿Cómo hacerlo en cPanel?
- En el Administrador de Archivos, haz clic en "Seleccionar todo" (Select All). O puedes presionar
Ctrl + Aen tu teclado. - En la barra superior, haz clic en "Permisos" (Permissions).
- Se abrirá una ventana. Verás una serie de casillas de verificación.
- Para cambiar TODOS los archivos a 644:
- Marca "Cambiar permisos de archivos" (Change files permissions).
- En los cuadros numéricos, escribe 644.
- Asegúrate de que NO esté marcada la opción "Aplicar a directorios".
- Para cambiar TODAS las carpetas a 755:
- Marca "Cambiar permisos de directorios" (Change directories permissions).
- En los cuadros numéricos, escribe 755.
- Asegúrate de que NO esté marcada la opción "Aplicar a archivos".
- Marca la casilla "Recursivo" (Recursive). Esto aplicará los cambios a todas las subcarpetas y archivos dentro de la carpeta actual.
- Haz clic en "Cambiar permisos" (Change Permissions).
¡Felicidades! Acabas de aplicar la configuración base de seguridad. Ahora, tu tienda es mucho más resistente a ataques.
Paso 2: Ajustar las carpetas que necesitan escritura
PrestaShop necesita poder escribir en algunas carpetas para funcionar correctamente. Si dejaste todo en 644/755, es posible que no puedas subir productos, instalar módulos o generar la caché. No te preocupes, es normal.
Las carpetas que necesitan permisos especiales (normalmente 755, pero a veces 777 en entornos muy restrictivos) son:
/img/(Para subir imágenes de productos, categorÃas, etc.)/modules/(Para instalar y actualizar módulos)/themes/(Para modificar la plantilla)/var/cache/(Para la caché de la tienda)/var/log/(Para los logs de errores)/config/(Para archivos de configuración comosettings.inc.php)/download/(Para archivos descargables)/upload/(Para subir archivos)/translations/(Para traducciones)
¿Cómo dar permisos 755 a una carpeta especÃfica?
- En el Administrador de Archivos, navega hasta la carpeta que quieres modificar (ej:
/img). - Haz clic derecho sobre la carpeta y selecciona "Cambiar permisos" (Change Permissions).
- En la ventana emergente, escribe 755 en el cuadro de permisos numérico.
- IMPORTANTE: Marca la casilla "Recursivo" para que se aplique a todas las subcarpetas y archivos dentro de
/img. - Haz clic en "Cambiar permisos".
Repite este proceso para cada una de las carpetas de la lista anterior.
[TIP] Si después de hacer esto tu tienda sigue dando error al subir imágenes o al guardar configuración, intenta cambiar temporalmente el permiso de esa carpeta especÃfica a 777, realiza la acción (subir la imagen, guardar el cambio) y luego vuelve a cambiarlo a 755. No lo dejes en 777.
Paso 3: El archivo settings.inc.php (El más crÃtico)
Este archivo contiene las credenciales de tu base de datos. Si un atacante lo lee, tiene acceso completo a tu tienda. Por eso, debe tener el permiso más restrictivo posible.
- Ubicación:
/app/config/parameters.php(en PrestaShop 1.7+) o/config/settings.inc.php(en PrestaShop 1.6). - Permiso recomendado: 644 (o incluso 444 si no necesitas modificar la configuración). Con 444, solo se puede leer, no escribir. Es ideal una vez que la tienda está estable.
Para cambiarlo, busca el archivo, haz clic derecho, "Cambiar permisos" y escribe 444 o 644.
Paso 4: Verificar con una herramienta de seguridad
PrestaShop incluye una herramienta de verificación de permisos en su backoffice.
- Accede a tu panel de administración de PrestaShop (ej:
tudominio.com/admin1234). - Ve a Parámetros Avanzados > Información.
- Busca la sección "Permisos de archivos".
- Verás una lista de archivos y carpetas con su estado actual (OK, No escribible, etc.). Si algo está mal, te indicará qué archivo o carpeta necesita ajuste.
Si ves todo en verde, ¡perfecto! Si ves algún error, vuelve al paso 2 y corrige el permiso de esa carpeta.
Errores comunes y cómo solucionarlos
- Error 500 (Internal Server Error) después de cambiar permisos: Lo más probable es que hayas cambiado los permisos de un archivo crÃtico (como
.htaccess) a un valor incorrecto (ej: 777). Vuelve a poner todo como estaba (644 archivos, 755 carpetas) y luego aplica los cambios de las carpetas especÃficas. - No puedo subir imágenes de productos: La carpeta
/img/o/upload/no tiene permisos de escritura. Cámbiala a 755 recursivamente. - No puedo instalar un módulo: La carpeta
/modules/no tiene permisos de escritura. Cámbiala a 755 recursivamente. Si el módulo es muy antiguo, puede que necesite 777 temporalmente. - La tienda se vuelve muy lenta: A veces, después de cambiar permisos, la caché deja de funcionar. Asegúrate de que la carpeta
/var/cache/tenga permisos 755 y, si es necesario, vacÃala manualmente desde el backoffice.
Preguntas Frecuentes (FAQ)
¿Con qué frecuencia debo revisar los permisos?
Respuesta: Idealmente, cada vez que instales un módulo, actualices PrestaShop o subas un tema. Como mÃnimo, una vez al mes. Es una buena práctica de ciberseguridad ecommerce.
¿Qué pasa si mi hosting usa Syspanel (HestiaCP) en lugar de cPanel?
Respuesta: No te preocupes. El concepto es exactamente el mismo. Syspanel (el panel que antes se llamaba HestiaCP) también tiene un Administrador de Archivos. Accede a tu panel a través del puerto 2106 (ej: tudominio.com:2106), busca la sección de "Archivos" y sigue exactamente los mismos pasos de esta guÃa. Los permisos 644 y 755 son universales.
¿Es seguro usar FTP para cambiar permisos?
Respuesta: SÃ, pero es menos visual que cPanel. Puedes usar un cliente FTP como FileZilla. Conéctate a tu servidor, haz clic derecho sobre un archivo o carpeta, selecciona "Permisos de archivo..." y escribe el número (644, 755, etc.). Es igual de efectivo.
¿Debo cambiar los permisos del archivo robots.txt?
Respuesta: No es crÃtico para la seguridad, pero es buena práctica. Déjalo en 644. Si lo pones en 755, no pasa nada grave, pero es mejor mantener la regla general.
Conclusión: La seguridad es un hábito, no un evento
Configurar los permisos archivos PrestaShop correctamente es uno de los pasos más importantes y sencillos que puedes dar para proteger PrestaShop. No necesitas ser un hacker ni un programador. Con esta guÃa, y dedicando 10 minutos al mes, reduces drásticamente el riesgo de que tu tienda sea hackeada.
Recuerda la regla de oro: 644 para archivos, 755 para carpetas, y 777 solo en casos muy puntuales y temporales. Aplica estos cambios, revisa tu tienda con la herramienta de PrestaShop y duerme tranquilo sabiendo que has cerrado las puertas de tu casa digital.
Si tienes dudas, no dudes en contactar con el soporte de tu hosting. ¡Tu tienda y tus clientes te lo agradecerán!
