🛡️ 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

Entradas populares