Foros del Web » Programando para Internet » PHP »

Consultas al trabajar con upload´s

Estas en el tema de Consultas al trabajar con upload´s en el foro de PHP en Foros del Web. Leyendo un árticulo relacionado con upload de archivos en php, se realizaba un unlink al temporal donde se alamacenaba el archivo mientras este era trasladado ...
  #1 (permalink)  
Antiguo 27/11/2005, 10:03
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Consultas al trabajar con upload´s

Leyendo un árticulo relacionado con upload de archivos en php, se realizaba un unlink al temporal donde se alamacenaba el archivo mientras este era trasladado a su carpeta final, pero en este mismo foro leí que eso lo hace automáticamente el servidor.

Esto me interesa pues en la aplicación que desarrollo existirá una fuerte transacción de archivos.

Haber que tan valido es realizar ese unlink al temporal.
Salu2.
  #2 (permalink)  
Antiguo 27/11/2005, 20:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio por seguridad, siempre deberíamos mover el archivo desde donde PHP sube todo archivo que pasa por PHP (al temporal que define en php.ini: upload_tmp_dir) con la función move_uploaded_file() hacia un directorio -nuestro- bajo nuestro control y de ahí según el proceso definitivo que se haga, si no nos interesa más el archivo .. borrarlo.

Esto es así, por qué configuraciones de PHP restrictivas como "safe mode", limitaciones por un open_base_dir .. entre otras NO te van a dejar tomar un archivo vía copy() .. o fopen() y menos borrarlo: unlink() desde el directorio "temporal" que PHP usa mientras sube archivos al servidor. Sólo la función "move_uploaded_file()" está autorizada para acceder -solo- a ese directorio. Todas las demás funciones mencionadas (y otras similares) sólo pueden moverse bajo lo que definan las restricciones como "open_base_dir" entre otras.

De hecho . .hablando de "Seguridad" .. si tu puedes hacer un "fopen()" a un archivo que está por ejemplo en "/tmp" de cierto servidor (del raiz de ese servidor) .. perfectamente podrías hacer un "fopen()" a un directorio de un "vecino" (en un servicio de hosting compartido) u otros archivos de sistema de ese servidor. Así hay mucho servicio de hosting "expuesto" por no aplicar restricciones de ese tipo. Por estos motivos se "inventó" la función move_uploaded_file() por qué sólo se autoriza acceso a esa función y a ese directorio (será el administrador del servidor de turno el que destine un directorio "Temporal" para tal fin donde guste que no compromenta otros archivos "Temporales").

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:39.