🛡️ Seguridad en servidores PHP: ¿Qué permisos debe tener la carpeta public/?
🛡️ Seguridad en servidores PHP: ¿Qué permisos debe tener la carpeta public/?
En frameworks modernos como CodeIgniter 4, Laravel o Symfony, la carpeta public/ es el punto visible desde la web. Si no está bien protegida, puede volverse una amenaza real para tu app.
⚠️ ¿Por qué public/ no debe tener permisos de escritura?
Si el servidor puede escribir ahí, te expones a:
- 🧨 Subida de archivos maliciosos (PHP, scripts)
- 📂 Exposición de archivos temporales (XML, PDFs)
- ⚠️ Ejecución remota de código
🔐 Por seguridad, no permitas escritura en public/. Solo lectura y ejecución.
✅ Permisos correctos: 755
- 7 → dueño: lectura, escritura y ejecución
- 5 → grupo: solo lectura y ejecución
- 5 → otros (navegador): solo lectura y ejecución
🚫 No uses 777 ni 775 en producción. Dejas puertas abiertas.
🛠️ Comandos recomendados
cd /var/www/html/mi-proyecto sudo chown -R www-data:www-data public/ sudo chmod -R 755 public/
📂 ¿Dónde guardar archivos generados?
En CodeIgniter 4, usa la carpeta writable/:
sudo mkdir -p writable/archivos sudo chown -R www-data:www-data writable/ sudo chmod -R 775 writable/
Otros ejemplos:
- 📁
writable/→ CodeIgniter - 📁
storage/→ Laravel - 📁
tmp/,uploads/, etc.
✔️ Buenas prácticas
- ✅ Solo lectura para
public/ - ✅ Solo escritura en
writable/o similares - ✅ Usa reglas de Nginx o .htaccess para bloquear scripts
- ❌ Nunca uses
chmod 777
📌 Resumen final
cd /var/www/html/mi-proyecto sudo chown -R www-data:www-data public/ sudo chmod -R 755 public/ sudo chown -R www-data:www-data writable/ sudo chmod -R 775 writable/
🔐 Mantén tu servidor protegido desde los permisos. Son tu primera defensa.
✍️ Publicado por julio101290 | Seguridad Linux + PHP - 2025


Comentarios
Publicar un comentario