Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
El día 4 de octubre de 2015, 16:25, Carlos Carcamoescribió: > El 4 de octubre de 2015, 11:19 a. m., Javier Silva > escribió: >> >> El 4/10/2015 8:01, "Carlos Carcamo" escribió: >>> >>> Saludos lista, >>> >>> Vengo en busca de un poco de ayuda, lo que tengo es una web en php donde >>> pretendo guardar algunas imágenes de usuarios, digamos por ejemplo que >>> guardo las imágenes en un directorio llamado 'private_images' dentro de mi >>> proyecto, me gustaría saber si existe alguna forma de proteger ese >>> directorio contra wget o curl. >>> >>> Estoy usando apache como servidor web en un vps con Debian wheezy >>> >>> por el momento he puesto un .htaccess como sigue: >>> >>> RewriteEngine on >>> RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] >>> RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] >>> RewriteRule \.(gif|jpg|png|jpeg)$ - [F] >>> >>> Este permite ocultar cualquier archivo de imagen al acceder a la url como: >>> http://localhost/mi_web/private_images, pero puedo desplegar las imágenes si >>> por ejemplo las mando a llamar con código html o php, >>> >>> pero si uso wget como sigue: >>> >>> $ wget -r http://localhost/mi_web/ >>> >>> Puedo descargar todas las imágenes en 'private_images' y eso es >>> precisamente lo que quiero evitar. >>> Lo que necesito es poder mostrar las imágenes en la web solo a los >>> usuarios logueados pero que no sea posible descargarlas todas usando wget o >>> curl como actualmente sucede. >>> >>> Saben de algún hack que pueda utilizar ya sea en GNU/Linux, usando apache >>> o usando php? >>> >>> De antemano muchas gracias por su ayuda, éxitos para tod@s. >>> >> >> Hola, >> >> Comienza por no poner las imágenes en carpetas públicas del servidor web. A >> continuación creas un script en php que retorne un objeto de imagen, el cual >> comprobará si se han validado el usuario de forma adecuada. Entonces asignas >> dicho script en PHP al IMG SRC de cada imagen a mostrar. >> >> Una carpeta pública no es posible protegerla, por el simple hecho de tener >> esa condición y cualquiera que reciba un enlace podrá descargar esa imagen o >> cualquier otra, simplemente probando diferentes nombres. >> >> Un saludo, >> Javier Silva. > > Gracias a todos por responder y perdón por el HTML olvide poner modo texto... > > Parece que lo mas sabio es no poner 'private_images' en una carpeta publica. > Por otra parte he logrado evitar que se acceda al directorio en la web > y también evitar que se descargue con curl o wget (al menos eso > parece). He modificado el .htaccess como sigue: > > > Options -Indexes # como sugiere Camaleón > RewriteEngine on > RewriteCond %{HTTP_USER_AGENT} Wget.* > RewriteRule .* - [F,L] > > He usado también httrack y no veo que logre descargar el directorio > 'private_images'. Todo parece estar bien hasta donde he probado. > > Me pregunto si hay alguna herramienta más poderosa que wget > o bien > alguna forma en que wget pueda pasar o ignorar las reglas del > .htaccess? El useragent que muestra el wget puede ser cambiado: $ wget --help | grep -i agent -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION. > Algo que me recomienden intentar para probar que verdaderamente no > pueden descargar ese directorio? > > Aclaración (por las dudas jaja): las imágenes si deben mostrarse en la > web, quiere decir que pueden descargarlas una por una, pero quiero > evitar que las descarguen todas de una vez... Si el directorio debe ser accedido por el browser también podrá ser accedido por wget con los parámetros adecuados. Yo creo que la solución más adecuada es la que te indicó Javier Silva en el caso que necesites dar acceso a la imagen a un usuario autenticado. Si el acceso debe darse a usuarios sin autenticación, pues puedo comentar que, no sé como se hace, pero, he visto sitios que sólo te permiten realizar una conexión desde un IP determinado, por lo que al intentar bajarlo con conexiones simultáneas te envía el IP a una "lista negra" pero pienso que eso ya sería un extremo, porque tiene sus consecuencias (hacer ban a toda una sub red que llegue enmascarada, etc) y de todos modos, wget puede ser configurado para no usar conexiones múltiples. Un abrazo, -- §~^Calabaza^~§ from Villa Elisa, Paraguay http://es.wikipedia.org/wiki/Top-posting http://es.wikipedia.org/wiki/Netiquette | http://www.ietf.org/rfc/rfc1855.txt http://www.sindominio.net/ayuda/preguntas-inteligentes.html
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
El Sun, 04 Oct 2015 13:25:14 -0600, Carlos Carcamo escribió: > Gracias a todos por responder y perdón por el HTML olvide poner modo > texto... Mejor ahora :-) > Parece que lo mas sabio es no poner 'private_images' en una carpeta > publica. Tampoco así evitarías que se descargan las imágenes de manera automatizada y masiva por quienes tengan acceso. Es tan sencillo como entender que si el servidor web tiene acceso de lectura a las imágenes y permite que los usuarios anónimos accedan, no hay forma de impedir lo que buscas (puedes poner piedras en el camino pero si alguien está interesado en bajarse las fotos al final buscará y encontrará la manera de hacerlo). Es como el uso del archivo "robots.txt", resulta inútil para quien quiera hacer maldades. > Por otra parte he logrado evitar que se acceda al directorio en > la web y también evitar que se descargue con curl o wget (al menos eso > parece). He modificado el .htaccess como sigue: > > > Options -Indexes # como sugiere Camaleón > RewriteEngine on RewriteCond > %{HTTP_USER_AGENT} Wget.* > RewriteRule .* - [F,L] > > He usado también httrack y no veo que logre descargar el directorio > 'private_images'. Todo parece estar bien hasta donde he probado. > > Me pregunto si hay alguna herramienta más poderosa que wget o bien > alguna forma en que wget pueda pasar o ignorar las reglas del .htaccess? > Algo que me recomienden intentar para probar que verdaderamente no > pueden descargar ese directorio? Wget no puede ignorar las reglas del .htaccess ni saltarse las directivas del servidor web pero nada impide que alguien automatice la descarga de las imágenes si encuentra una forma de hacerlo. > Aclaración (por las dudas jaja): las imágenes si deben mostrarse en la > web, quiere decir que pueden descargarlas una por una, pero quiero > evitar que las descarguen todas de una vez... Obvio :-) Saludos, -- Camaleón
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
El 04/10/15 a las 12:21, Santiago Vila escribió: éxitos para tod@s. héxitos para thodos. ¿Tanto trabajo cuesta escribir bien, o es que hay algún tipo de patente de corso para que las faltas de ortografía estén mal vistas pero otro tipo de faltas no lo estén? Perdona, pero la palabra éxito está bien escrita. Eres tú el que la has escrito mal. ¿Desde cuando lleva H? -- www.LinuxCounter.net Registered user #369215
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
On Sun, Oct 04, 2015 at 12:21:44PM +0200, Santiago Vila wrote: > On Sun, Oct 04, 2015 at 12:00:12AM -0600, Carlos Carcamo wrote: > > pero si uso wget como sigue: > > > > $ wget -r http://localhost/mi_web/ > > > > Puedo descargar todas las imágenes en 'private_images' y eso es > > precisamente lo que quiero evitar. > > Pues para empezar podrías evitar poner enlaces a private_images de > forma que ningún buscador lo encuentre a partir de la página inicial > de tu sitio. Se me ocurre para "medio solucionarlo" poner un robots.txt. Otra opción, usar/integrar algun software de alguien que ya se haya encontrado con esto en el pasado, y así no tener que reinventar la rueda. Por ejemplo, Gallery [0]. [0] http://galleryproject.org/ -- Adrià García-Alzórriz 0x09494C14 I expect that noone has objections. However, if I'd only add these entries to the list because `I think it's the right thing to do', I'd get a lot of flames afterwards :) -- Christian Schwarz signature.asc Description: PGP signature
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
On Sun, Oct 04, 2015 at 12:00:12AM -0600, Carlos Carcamo wrote: > pero si uso wget como sigue: > > $ wget -r http://localhost/mi_web/ > > Puedo descargar todas las imágenes en 'private_images' y eso es > precisamente lo que quiero evitar. Pues para empezar podrías evitar poner enlaces a private_images de forma que ningún buscador lo encuentre a partir de la página inicial de tu sitio. > éxitos para tod@s. héxitos para thodos. ¿Tanto trabajo cuesta escribir bien, o es que hay algún tipo de patente de corso para que las faltas de ortografía estén mal vistas pero otro tipo de faltas no lo estén?
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
On Sun, Oct 04, 2015 at 01:08:50PM +0200, Eduardo Rios wrote: > El 04/10/15 a las 12:21, Santiago Vila escribió: > > >>éxitos para tod@s. > > > >héxitos para thodos. > > > >¿Tanto trabajo cuesta escribir bien, o es que hay algún tipo de > >patente de corso para que las faltas de ortografía estén mal vistas > >pero otro tipo de faltas no lo estén? > > > Perdona, pero la palabra éxito está bien escrita. Eres tú el que la has > escrito mal. ¿Desde cuando lleva H? > Creo que a Santiago se le ha olvidado un cartel de «Sarcasmo» [0] y que hacía referencia a tu «tod@s». [0] http://deathlife97.deviantart.com/art/Sarcasm-The-Big-Bang-Theory-291050016 -- Adrià García-Alzórriz 0x09494C14 You can't cross a large chasm in two small jumps. signature.asc Description: PGP signature
[OT] Proteger un directorio publico en la web contra descargas via wget o curl
Saludos lista, Vengo en busca de un poco de ayuda, lo que tengo es una web en php donde pretendo guardar algunas imágenes de usuarios, digamos por ejemplo que guardo las imágenes en un directorio llamado 'private_images' dentro de mi proyecto, me gustaría saber si existe alguna forma de proteger ese directorio contra wget o curl. Estoy usando apache como servidor web en un vps con Debian wheezy por el momento he puesto un .htaccess como sigue: RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] RewriteRule \.(gif|jpg|png|jpeg)$ - [F] Este permite ocultar cualquier archivo de imagen al acceder a la url como: http://localhost/mi_web/private_images, pero puedo desplegar las imágenes si por ejemplo las mando a llamar con código html o php, pero si uso wget como sigue: $ wget -r http://localhost/mi_web/ Puedo descargar todas las imágenes en 'private_images' y eso es precisamente lo que quiero evitar. Lo que necesito es poder mostrar las imágenes en la web solo a los usuarios logueados pero que no sea posible descargarlas todas usando wget o curl como actualmente sucede. Saben de algún hack que pueda utilizar ya sea en GNU/Linux, usando apache o usando php? De antemano muchas gracias por su ayuda, éxitos para tod@s. -- "El desarrollo no es material es un estado de conciencia mental"
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
El 4/10/2015 8:01, "Carlos Carcamo"escribió: > > Saludos lista, > > Vengo en busca de un poco de ayuda, lo que tengo es una web en php donde pretendo guardar algunas imágenes de usuarios, digamos por ejemplo que guardo las imágenes en un directorio llamado 'private_images' dentro de mi proyecto, me gustaría saber si existe alguna forma de proteger ese directorio contra wget o curl. > > Estoy usando apache como servidor web en un vps con Debian wheezy > > por el momento he puesto un .htaccess como sigue: > > RewriteEngine on > RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] > RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] > RewriteRule \.(gif|jpg|png|jpeg)$ - [F] > > Este permite ocultar cualquier archivo de imagen al acceder a la url como: http://localhost/mi_web/private_images, pero puedo desplegar las imágenes si por ejemplo las mando a llamar con código html o php, > > pero si uso wget como sigue: > > $ wget -r http://localhost/mi_web/ > > Puedo descargar todas las imágenes en 'private_images' y eso es precisamente lo que quiero evitar. > Lo que necesito es poder mostrar las imágenes en la web solo a los usuarios logueados pero que no sea posible descargarlas todas usando wget o curl como actualmente sucede. > > Saben de algún hack que pueda utilizar ya sea en GNU/Linux, usando apache o usando php? > > De antemano muchas gracias por su ayuda, éxitos para tod@s. > Hola, Comienza por no poner las imágenes en carpetas públicas del servidor web. A continuación creas un script en php que retorne un objeto de imagen, el cual comprobará si se han validado el usuario de forma adecuada. Entonces asignas dicho script en PHP al IMG SRC de cada imagen a mostrar. Una carpeta pública no es posible protegerla, por el simple hecho de tener esa condición y cualquiera que reciba un enlace podrá descargar esa imagen o cualquier otra, simplemente probando diferentes nombres. Un saludo, Javier Silva.
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
El Sun, 04 Oct 2015 00:00:12 -0600, Carlos Carcamo escribió: > Saludos lista, Ese html... y no creo que sea un OT. > Vengo en busca de un poco de ayuda, lo que tengo es una web en php donde > pretendo guardar algunas imágenes de usuarios, digamos por ejemplo que > guardo las imágenes en un directorio llamado 'private_images' dentro de > mi proyecto, me gustaría saber si existe alguna forma de proteger ese > directorio contra wget o curl. (...) Puedes hacer varias cosas: 1/ Configurar las páginas de carga inicial (DirectoryIndex) 2/ No permitir el listado de archivos (Options -Indexes) > pero si uso wget como sigue: > > $ wget -r http://localhost/mi_web/ > > Puedo descargar todas las imágenes en 'private_images' y eso es > precisamente lo que quiero evitar. > Lo que necesito es poder mostrar las imágenes en la web solo a los > usuarios logueados pero que no sea posible descargarlas todas usando > wget o curl como actualmente sucede. (...) Por aquí recomiendan otro sistema que es banear a wget y curl pero me parece un poco radical: Automatic download a site with *wget*: how to prevent? http://serverfault.com/questions/305033/automatic-download-a-site-with-wget-how-to-prevent Saludos, -- Camaleón
Re: [OT] Proteger un directorio publico en la web contra descargas via wget o curl
El 4 de octubre de 2015, 11:19 a. m., Javier Silvaescribió: > > El 4/10/2015 8:01, "Carlos Carcamo" escribió: >> >> Saludos lista, >> >> Vengo en busca de un poco de ayuda, lo que tengo es una web en php donde >> pretendo guardar algunas imágenes de usuarios, digamos por ejemplo que >> guardo las imágenes en un directorio llamado 'private_images' dentro de mi >> proyecto, me gustaría saber si existe alguna forma de proteger ese >> directorio contra wget o curl. >> >> Estoy usando apache como servidor web en un vps con Debian wheezy >> >> por el momento he puesto un .htaccess como sigue: >> >> RewriteEngine on >> RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] >> RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] >> RewriteRule \.(gif|jpg|png|jpeg)$ - [F] >> >> Este permite ocultar cualquier archivo de imagen al acceder a la url como: >> http://localhost/mi_web/private_images, pero puedo desplegar las imágenes si >> por ejemplo las mando a llamar con código html o php, >> >> pero si uso wget como sigue: >> >> $ wget -r http://localhost/mi_web/ >> >> Puedo descargar todas las imágenes en 'private_images' y eso es >> precisamente lo que quiero evitar. >> Lo que necesito es poder mostrar las imágenes en la web solo a los >> usuarios logueados pero que no sea posible descargarlas todas usando wget o >> curl como actualmente sucede. >> >> Saben de algún hack que pueda utilizar ya sea en GNU/Linux, usando apache >> o usando php? >> >> De antemano muchas gracias por su ayuda, éxitos para tod@s. >> > > Hola, > > Comienza por no poner las imágenes en carpetas públicas del servidor web. A > continuación creas un script en php que retorne un objeto de imagen, el cual > comprobará si se han validado el usuario de forma adecuada. Entonces asignas > dicho script en PHP al IMG SRC de cada imagen a mostrar. > > Una carpeta pública no es posible protegerla, por el simple hecho de tener > esa condición y cualquiera que reciba un enlace podrá descargar esa imagen o > cualquier otra, simplemente probando diferentes nombres. > > Un saludo, > Javier Silva. Gracias a todos por responder y perdón por el HTML olvide poner modo texto... Parece que lo mas sabio es no poner 'private_images' en una carpeta publica. Por otra parte he logrado evitar que se acceda al directorio en la web y también evitar que se descargue con curl o wget (al menos eso parece). He modificado el .htaccess como sigue: Options -Indexes # como sugiere Camaleón RewriteEngine on RewriteCond %{HTTP_USER_AGENT} Wget.* RewriteRule .* - [F,L] He usado también httrack y no veo que logre descargar el directorio 'private_images'. Todo parece estar bien hasta donde he probado. Me pregunto si hay alguna herramienta más poderosa que wget o bien alguna forma en que wget pueda pasar o ignorar las reglas del .htaccess? Algo que me recomienden intentar para probar que verdaderamente no pueden descargar ese directorio? Aclaración (por las dudas jaja): las imágenes si deben mostrarse en la web, quiere decir que pueden descargarlas una por una, pero quiero evitar que las descarguen todas de una vez... Gracias! -- "El desarrollo no es material es un estado de conciencia mental"