[Php-avanzado] chequear subida correcta de archivos

Jesica Billia jesicabillia en hotmail.com
Sab Abr 30 11:06:36 ART 2011


Ok, entonces es correcto verificarlo, lo sigo usando. Ahora, todavía no me surgió nada con los permisos... en breve seguramente estaré preguntado!! ajjaj gracias a ambos y saludos!!

> From: leonardot en pegasusnet.com.ar
> To: php-avanzado en pato2.fi.mdp.edu.ar
> Date: Sat, 30 Apr 2011 02:49:44 -0300
> Subject: Re: [Php-avanzado] chequear subida correcta de archivos
> 
> Hola Jésica y Roger,
> 
> 	no, el objeto de usar is_uploaded_file() es otro.
> 	No hay tema de permisos, porque si el dueño del archivo al subirlo al
> directorio temporal es Apache, al moverlo se mantendrá el dueño.
> 
> 	Siempre hay que usar is_uploaded_file() porque lo que previene esta
> función es que se mueva un archivo que no fue subido, es decir, que ya
> exista en el servidor.
> 
> 	Por ejemplo si yo hago:
> 
> move_uploaded_file('/etc/passwd' , 'mio/nombre.txt' );
> 
> 	me estoy haciendo una copia del archivo de usuarios del sistema.
> 
> 	Pero si bien esto anda, is_uploaded_file('/etc/passwd') va a dar falso,
> porque ese archivo no fue el subido, sino que ya estaba en el sistema.
> 
> 	Naturalmente que vos podés escribir un script que use copy() y quedarte
> con el archivo de los usuarios, pero la idea de esta práctica es
> prevenir que por un error más sutil de programación, un usuario
> malintencionado pueda usar tu script para obtener copias de archivos
> sensibles del sistema.
> 
> 	Por todo esto es una buena práctica hacer ambas verificaciones: que no
> haya error en la subida, y que el archivo sea un archivo subido.
> 
> 
> El sáb, 30-04-2011 a las 01:04 -0300, Rogelio A. Schwindt escribió:
> > El move_uploaded_file() es todo un tema en entornos linux...
> > (corrijanme si estoy equivocado o me comi algo)
> >  
> > El tema es que si moves el archivo subido con la funcion
> > move_uploaded_file() desde por ejemplo /tmp/phpxxxx.tmp  a tu
> > direcctorio supongamos /home/usuario/www/uploads
> > los permisos del archivo phpxxxx.tmp son de apache.... pero
> > en /home/usuario/www/uploads los permisos son del usuario tuyo de
> > ftp...
> > Salvo que des permiso en la carpeta uploads para que escriba apache,
> > el move_uploaded_file() fallara por falta de permisos... en el caso de
> > que des los permisos para que apache escriba en uploads, el
> > propietario de ese archivo seguira siendo apache, por lo que no te
> > quedara otra que hacer la famosa maniobra ftp para que los archivos te
> > queden con permisos de tu usuario... y no usar move_uploaded_file() 
> >  
> > Saludos.
> >  
> > Rogelio Schwindt
> >         ----- Original Message ----- 
> >         From: Jesica Billia 
> >         To: Forum PHP ing 
> >         Sent: Saturday, April 30, 2011 12:36 AM
> >         Subject: [Php-avanzado] chequear subida correcta de archivos
> >         
> >         
> >         Buenas, tengo una consulta para cuando subo archivos, porque
> >         no me queda en claro, si antes de procesar el archivo y
> >         subirlo, 
> >         
> >         si yo chequeo $_FILES['archivo']['error'] == UPLOAD_ERR_OK y
> >         si se cumple con esa condición entonces continúo 
> >         
> >         y luego utilizo la función
> >         is_uploaded_file( $_FILES['archivo']['tmp_name'] ) para
> >         controlar si se ha subido el archivo, es necesario o lo puedo
> >         omitir
> >         
> >         antes de usar el
> >         move_uploaded_file( $_FILES['archivo']['tmp_name'] ,
> >         $_FILES['archivo']['name'] ) ?
> >         
> >         Gracias y Saludos!!
> >         
> >         
> >         __________ Información de ESET Smart Security, versión de la
> >         base de firmas de virus 6082 (20110429) __________
> >         
> >         ESET Smart Security ha comprobado este mensaje.
> >         
> >         http://www.eset.com
> >         
> >         
> >         
> >         ______________________________________________________________
> >         
> >         _______________________________________________
> >         Php-avanzado mailing list
> >         Php-avanzado en pato2.fi.mdp.edu.ar
> >         http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> >         
> >         
> >         __________ Información de ESET Smart Security, versión de la
> >         base de firmas de virus 6082 (20110429) __________
> >         
> >         ESET Smart Security ha comprobado este mensaje.
> >         
> >         http://www.eset.com
> >         
> > 
> > 
> > __________ Información de ESET Smart Security, versión de la base de
> > firmas de virus 6082 (20110429) __________
> > 
> > ESET Smart Security ha comprobado este mensaje.
> > 
> > http://www.eset.com
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> 
> -- 
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20110430/06ab3c87/attachment.htm>


Más información sobre la lista de distribución Php-avanzado