Cómo permitir la carga segura de archivos ejecutables [duplicar]

8

Necesito ayuda con respecto a la carga de archivos. En uno de mis proyectos, el cliente desea permitir una carga de archivos sin restricciones en el tipo de archivo. Pero me temo que los usuarios pueden cargar archivos ejecutables como .php, .aspx, .dll, .so y luego pueden realizar fácilmente "ejecución remota de código" o "ataque de script".

¿Cómo resolver este problema?

    
pregunta Ravi 05.10.2016 - 09:27
fuente

3 respuestas

21

La solución más común para este tipo de problema es asegurarse de que el servidor web no pueda acceder al archivo almacenado.

Una forma sencilla de hacer esto es almacenar el archivo en una base de datos y nunca guardarlo en el disco. Sin embargo, debe tener cuidado de no crear algún tipo de XSS: no permita que el archivo se vincule directamente o, idealmente, se descargue. Si necesita que el archivo esté disponible a través de su interfaz web, use el encabezado de disposición de contenido "adjunto" para asegurarse de que el navegador no intente interpretar el archivo.

    
respondido por el Stephane 05.10.2016 - 09:37
fuente
2

Use un marco sano que incluya el enrutamiento de URL adecuado. En lugar de que el servidor web dirija las solicitudes a archivos ejecutables en función de la URL, redirige todas al punto de entrada del marco y le permite manejar la solicitud, generalmente en función de una ruta al mapeo del controlador.

Esto significa que cualquier archivo cargado es seguro ya que no debería haber forma de que se ejecute.

    
respondido por el André Borie 05.10.2016 - 20:29
fuente
0

Guárdelo en una base de datos especial o en cualquier entorno no xx como lo mencionó Stephene. Si solo las personas autorizadas tienen que cargar un archivo, puede aplicar esas restricciones y agregar también captcha para evitar los bots.     

respondido por el Abdelhafeez Bushara 05.10.2016 - 13:17
fuente

Lea otras preguntas en las etiquetas