Google
Web dns.bdat.net

Re: [PHP-ES] Es posible Impedir Acceso a Imagenes directamente por URL...

From: Borja Martín (borja(EN)dagi3d.net)
Date: Tue Oct 19 2004 - 17:04:33 CEST


At 08:18 19/10/2004 -0500, you wrote:
>hola a todos
>
>Yo hace poco lo arregle combinandolo con flash.
>
>Puede ser un poco complejo pero con eso te evitas que te copien las imagenes
>
>Creas una pelicula y con action script le pasas el nombre de la imagen y su
>ruta. Nadie lo ve y no se sabe desde donde se cargan las imagenes
>
>Aunque las otras soluciones son muy buenas tambien
>
>no se que opinan el resto de los compañeros de esta lista

pues que cualquier proteccion del lado de cliente viene a resultar un tanto
futil. una pelicula en flash es facilmente decompilable por lo que se
podria averiguar la ruta sin problemas. esta claro que asi lo pones un poco
mas dificil, pero si realmente alguien tiene interes en descargarse la
imagenes, lo hara sin romperse mucho la cabeza

saludos

>----- Original Message -----
>From: "Vladimir Hernandez" <vladimir(EN)inter-connect.us>
>To: <php-es(EN)lists.php.net>
>Sent: Tuesday, October 19, 2004 8:11 AM
>Subject: Re: [PHP-ES] Es posible Impedir Acceso a Imagenes directamente por
>URL...
>
>
>Otra opción que se me ocurre es elaborar una función en PHP que lea los
>archivos desde un directorio en tu disco duro que no es accesible vía Web,
>ya
>sea porque está protegido a través del software de tu servidor, o
>simplemente
>porque no se encuentra dentro de tu sección de acceso público .
>
>Un ejemplo sería el siguiente:
>
>Supocisiones:
>- Plataforma Linux (sólo haz los ajustes necesarios en caso de Windows)
>- El directorio que contiene tu website es "/www".
>- El directorio /home/images no tiene acceso desde la Web.
>- La variable "$_SESSION['verificado']" sólo existe si se ha validado
>previamente al usuario de tu script
>- Las imágenes se encuentran listadas dentro de una base de datos de MySQL
>que
>tiene la tabla images con dos campos: image_id e image_file, donde el
>primero
>tiene un nombre críptico y no relacionado con el nombre original del
>archivo,
>por ejemplo "0AX55", etc. El segundo campo contiene el nombre completamente
>amigable del archivo, por ejemplo "foto_de_mi_perro.jpg". El campo de
>image_id es index unique.
>- Tu librería GD está activada
>- Un usuario aprobado necesita ver la imagen de image_id="0AX55".
>
>Si "images.php" contiente:
><?php
>if(isset($_SESSION['verificado']) # si usuario aprobado de ver imágenes
>{
>$db = mysql_connect("server","user","password");
>mysql_select_db("database",$db); # abrir DB
>$image_sql="SELECT image_file FROM images WHERE image='".$image_id."'";
>$image_out=mysql_query($image_sql,$db);
>$image_array=mysql_fetch_row($image_out);# recibir salida de SQL
>$image_file=$image_array[0]; # modificable para más de 1 imagen
>$image_file="/home/images/".$image_file; # relacionando con directorio
>$image=LoadJpeg($image_file); #abriendo imagen
>header("Content-type: image/jpeg"); # para q browser reconozca imagen
>ImageJpeg($image,'',70);# nueva imagen a calidad 70%
>ImageDestroy($image);# Eliminar imagen de memoria
>}
>?>
>
>el HTML de la página que contendrá la imagen se vería algo así:
><img src="images.php?image_id=0AX55">
>
>El script es my básico, hay que completar para manejo de errores y de
>validación. El tag de IMG debe obviamente ser generado dinámicamente
>también,
>posiblemente de acuerdo a lo que el usuario elija en un formulario. Aunque
>sólo considera imágenes jpeg, se puede ajustar a otros formatos.
>
>La ventaja es que lee desde un directorio que no es públicamente accesible,
>no
>se necesita modificar el sevidor para esto, y de hecho, con algo de
>paciencia
>se puede lograr que despliegue la imagen de cierto tamaño, etc.
>
>Espero te sirva
>
>On Monday 18 October 2004 11:41 pm, Jabi wrote:
> > te aconsejo que utilizes mod_rewrite de apache
> >
> > http://httpd.apache.org/docs/mod/mod_rewrite.html
> >
> > yo lo que haría sería renombrar todsa las fotos poninedo un prefijo.
> > Limitaría el acceso desde navegador a archivos en ese directorio con ese
> > prefijo especial.
> > y construiría un php que fuera invocado por el mod_rewrite, que se
> > encargará de leer y volcar la imagen que se esté solicitando, prevía
> > comprobación por ejemplo de que exista una variable de sesión.
> >
> > espero mas o menos haberte dado una idea...
> >
> > Un saludo
> >
> > Jabi
> >
> > El mar, 19-10-2004 a las 08:22, pp.garrido(EN)tiscali.es escribió:
> > > Muy buenas, gente, estos son de los mejores foros q he visto... a ver si
> > > me podeis orientar....
> > >
> > > Ahora se me plantea un "problemilla" para mi, quizas para vosotros no...
> > >
> > > TEngo una web, en un subdirectorio tengo imagenes enumeradas de cierta
> > > forma que son enganchadas desde mis paginas web. El directorio lo tengo
> > > pa q no se pueda listar y ver el contenido...
> > >
> > > Mi problema es:
> > > Si hay alguna forma de hacer, que no se pueda acceder
> > > directamente a esas mis imagenes?
> > > imaginemos q por cualquier "casualidad" alguien averigua la forma en que
> > > codifico los nombres de mis imagenes, esto implicaria que podria recoger
> > > todas esas imagenes mediante
> > > http://www.miweb.es/imagenes/img2342524322.jpg variando el nombre.
> > > Basicamente La cosa es no poder hacer referencias directas desde un
> > > navegador a imagenes en mi directorio,
> > >
> > > ¿es posible?
> > > Gracias....
> > >
> > > Envíanos tus fotos digitales.
> > > Te las revelamos en papel de máxima calidad y te las llevamos a la
>puerta
> > > de casa.
> > > ¡Verás qué cómodo!
> > >
> > > http://foto.tiscali.es
> > >
> > > Envíanos tus fotos digitales.
> > > Te las revelamos en papel de máxima calidad y te las llevamos a la
>puerta
> > > de casa.
> > > ¡Verás qué cómodo!
> > >
> > > http://foto.tiscali.es
>
>--
>PHP Spanish Localization Talk Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php
>
>--
>PHP Spanish Localization Talk Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


This archive was generated by hypermail 2.1.7 : Fri Nov 12 2004 - 20:21:31 CET