Me preguntaba qué problemas de seguridad aparecen cuando el usuario final de un sitio web puede subir archivos al servidor.¿Qué problemas de seguridad aparecen cuando los usuarios pueden cargar sus propios archivos?
Por ejemplo si mi sitio web permite a los usuarios cargar una imagen de perfil, y lo sube un usuario algo dañino en su lugar, lo que podría suceder? ¿Qué tipo de seguridad debo configurar para prevenir ataques como este? Estoy hablando de imágenes, pero ¿qué pasa con el caso en que un usuario puede subir algo a un tipo de aplicación de archivo-bóveda?
Es más una cuestión general que una pregunta sobre una situación específica, por lo que ¿cuáles son las mejores prácticas en esa situación? ¿Qué haces usualmente?
supongo: validación de tipo de carga, different permissions for uploaded files ... ¿qué más?
EDIT: Para aclarar el contexto, estoy pensando en una aplicación web donde un usuario puede cargar cualquier tipo de archivo y luego mostrarlo en el navegador. El archivo se almacenaría en el servidor. Los usuarios son quienes usan el sitio web, por lo que no hay confianza involucrada.
Estoy buscando respuestas generales que podrían aplicarse a diferentes idiomas/framework y entornos de producción.
Traté de mantener esta independiente del idioma, pero para PHP, hay una sección del manual que trata sobre el # 1: http://us3.php.net/manual/en/features.file-upload.common-pitfalls.php – Powerlord
Pero qué hacer si Permitir a los usuarios cargar archivos que podrían ser potencialmente dañinos, como archivos .exe o scripts .sh? ¿Es algo que debería prohibir? – marcgg
Sí ... o eso o solo tiene una lista blanca de extensiones que aceptará. – Powerlord