El 4 de octubre de 2015, 11:19 a. m., Javier Silva <fjsil...@gmail.com> escribió: > > El 4/10/2015 8:01, "Carlos Carcamo" <eazyd...@gmail.com> 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"