Foros del Web » Programando para Internet » PHP »

Como asegurar imagenes en una aplicación

Estas en el tema de Como asegurar imagenes en una aplicación en el foro de PHP en Foros del Web. Buenas tardes, Desarrollo un sistema en el cual hay diferentes usuarios que pueden subir imagenes para visualizarlas en una galería. La idea es que todas ...
  #1 (permalink)  
Antiguo 03/09/2008, 15:35
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Como asegurar imagenes en una aplicación

Buenas tardes,

Desarrollo un sistema en el cual hay diferentes usuarios que pueden subir imagenes para visualizarlas en una galería. La idea es que todas las imagenes van a dar en alguna ubicación del servidor, y se supone que un usuario no puede poder acceder a las imagenes de otro usuario. Las imagenes subidas, son renombradas por PHP con un numero de secuencia, y facilmente un usuario podria ver a que url se hace la peticion de las imagenes, y modificando el nombre tambien podria acceder a las fotos de otro.

QUe metodo sugieren para tener estas galerias de manera segura?

Gracias
__________________
Desdichado quien duerme en la mañana
  #2 (permalink)  
Antiguo 08/09/2008, 02:49
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Como asegurar imagenes en una aplicación

Yo estoy exactamente con el mismo tema que tu.

Sigo pensando alguna solucion; la unica que se me ocurre es meter las fotos dentro de un directorio protegido por htacces que impida el acceso directo mediante URL.

Por otrol lado las peticiones de imagenes llegan a una pagina php (por ejemplo imagenes.php?imagen=0001) que puede comprobar la session y obtener la ruta de las imagenes para ese usuario; leer el fichero de la imagen y mostrarla.

Este sistema no me gusta porque veo que es dar carga al servidor, y ademas esto mismo habria que hacer para las miniaturas.

Si alguien tiene alguna otra idea
  #3 (permalink)  
Antiguo 08/09/2008, 05:16
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: Como asegurar imagenes en una aplicación

otra opción, la mas segura, es almacenarla en la bd, cosa que al momento de generar la imagen, en la cabecera podemos agregar algun tipo de validador de usuario, en caso no sea el usuario indicado simplemente redireccione a otra página.

para mas informacion puedes leer este aporte

si tienes almacenada la imagen, pues, con ese registro puedes aplicar la cantidad de validadores que desees, y no te das mas problemas....
  #4 (permalink)  
Antiguo 08/09/2008, 10:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Como asegurar imagenes en una aplicación

Otra opción es poner las imagenes en un directorio arriba de tu "webroot" para que no se puedan leer por URL, y con PHP leer y mostrar la imagen.

Saludos.
  #5 (permalink)  
Antiguo 08/09/2008, 13:17
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Como asegurar imagenes en una aplicación

ese es parecido al que yo habia pensado

por otro lado lo de guardar las imagenes en la base de datos no me gusta demasiado.mientras mas cosas puedan estar fuera de la base de datos mejor (asi se evita lentitud, fallos de conexion, limite de conexiones simultaneas, etc.)
  #6 (permalink)  
Antiguo 08/09/2008, 13:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Como asegurar imagenes en una aplicación

No necesariamente tienes que guardar la imagen perse en la base de datos.
Solo guarda la RUTA a dicha imagen.
  #7 (permalink)  
Antiguo 08/09/2008, 21:48
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Respuesta: Como asegurar imagenes en una aplicación

Cita:
Iniciado por GatorV Ver Mensaje
Otra opción es poner las imagenes en un directorio arriba de tu "webroot" para que no se puedan leer por URL, y con PHP leer y mostrar la imagen.

Saludos.
GatorV como siempre tu solucion me parece la mas intersante. Pero algo no me queda claro. Al ubicarlas por fuera del webroot, como la publico en la pagina? finalmente siempre por debajo del navegador, la peticion GET se debe hacer a un lugar publico. Me imagino que seria pasando temporalmente la imagen a una ubicacion publica.

Me podrias aclarar esto un poco mas??

Mil gracias por sus aportes.
__________________
Desdichado quien duerme en la mañana
  #8 (permalink)  
Antiguo 08/09/2008, 22:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Como asegurar imagenes en una aplicación

Usas un script pass-thru, es decir un PHP donde leas la imagen, en este PHP compruebas que el usuario sea valido para ver la imagen y en caso contrario le puedes mostrar otra imagen.

Saludos.
  #9 (permalink)  
Antiguo 08/09/2008, 22:14
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Respuesta: Como asegurar imagenes en una aplicación

Cita:
Iniciado por GatorV Ver Mensaje
Usas un script pass-thru, es decir un PHP donde leas la imagen, en este PHP compruebas que el usuario sea valido para ver la imagen y en caso contrario le puedes mostrar otra imagen.

Saludos.
y en caso de que si este autorizado como muestro ma imagen?? osea, finalmente cuando imprimo la imagen, cual seria el src??

gracias
__________________
Desdichado quien duerme en la mañana
  #10 (permalink)  
Antiguo 08/09/2008, 22:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Como asegurar imagenes en una aplicación

el src lo apuntas al script PHP y usas header() junto con las funciones de acceso a archivo para leer e imprimir al fichero.

Saludos.
  #11 (permalink)  
Antiguo 09/09/2008, 12:31
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Respuesta: Como asegurar imagenes en una aplicación

Cita:
Iniciado por GatorV Ver Mensaje
el src lo apuntas al script PHP y usas header() junto con las funciones de acceso a archivo para leer e imprimir al fichero.

Saludos.
mmmm gator me podrias dar un ejemplo pequeno?? lo que entiendo es que con las funciones de acceso a archivo copiaria temporalmente la imagen en una carpeta publica para despues borrarse.
__________________
Desdichado quien duerme en la mañana
  #12 (permalink)  
Antiguo 09/09/2008, 12:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Como asegurar imagenes en una aplicación

No necesariamente, solamente lees el archivo de la fuente y lo pasas por el script, algo mas o menos asi:
Código PHP:
$fh fopen'/storage/archivo.jpg''r' );
header"Content-type: image/jpeg" );
fpassthru$fh ); 
y desde la etiqueta:
Código HTML:
<img src="archivo.php"> 
Saludos.
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 20:37.