Lista de verificación de seguridad de carga de imágenes PHP: protección integral
Para garantizar la seguridad de su script de carga de imágenes PHP, es fundamental implementar medidas de seguridad exhaustivas. Aquí hay una lista de verificación completa para guiarlo:
- Deshabilitar la ejecución de PHP: Evite que el código PHP se ejecute dentro del directorio de carga usando un archivo .htaccess.
- Filtrar PHP en nombres de archivos: Rechazar cargas con nombres de archivos que contengan "php".
- Restringir archivo Extensiones: Limite las extensiones de archivo aceptadas a imágenes (p. ej., jpg, jpeg, gif, png).
- Verifique el tipo de imagen: Utilice getimagesize() para confirmar que los archivos cargados son genuinos tipos de imágenes.
- No permitir extensiones de archivo dobles: busca archivos con varias barras diagonales en su tipo MIME, lo que indica un posible intento de cargar una imagen con un script malicioso.
- Cambiar el nombre del archivo: Cambie el nombre del archivo cargado para evitar la explotación mediante nombres de archivo predecibles.
- Subir a un subdirectorio: Almacene las imágenes cargadas en un subdirectorio para evitar el acceso directo al sitio web.
Adicional Recomendaciones:
- **Usa move_uploaded_file(): asigna archivos cargados a la ruta de destino usando move_uploaded_file().
- Procesamiento GD (o Imagick): Vuelva a renderizar las imágenes cargadas usando GD o Imagick para mitigar amenazas potenciales.
- Carga restrictiva Directorio: Mantenga los directorios de carga altamente restringidos para evitar la explotación.