Impedir la descarga de imágenes

sisi escribió esto a las 20:24

Bueno, ya se sabe que la única manera de impedir la descarga de imágenes en Internet es … no ponerlas en Internet, pero cuando no queda más remedio porque, como también se sabe, no eres nadie si no estás presente en la Red, una manera de proteger tus imágenes contra su descarga y utilización, sin los permisos pertinentes, es utilizar la llamada “marca de agua” que no es más que un dibujo o texto semitransparente que se superpone a la imagen original.
La manera más fácil y segura de insertar estas marcas es editando tus imágenes con tu programa favorito y subirlas al servidor ya con la marca puesta. Cuanto más compleja sea la marca más difícil será, para un usuario avanzado de programas de edición de imágenes, eliminarlas sin dejar rastro.

Pero hay otra manera más rápida y elegante de hacer esto, que tiene también su intríngulis y por tanto resulta también mucho más interesante que la anterior: se trata de insertar la marca de agua de forma dinámica utilizando PHP y su librería GD.

El código fuente pulula por toda la red y yo lo he tomado de aquí:

El gurú programador: Marcas de agua automáticas con PHP y GD

Se trata de crear una imagen de marca llamada water.png, colocarla en el lugar adecuado junto con el archivo PHP que he llamado watermark.php.

Cuando llamemos a una imagen, por ejemplo imagenoriginal.jpg lo haremos a través del código php que generará una nueva imagen llamada watermark.php.jpg con la marca insertada.

La llamada a la imagen sería algo así como:

ruta/del/archivo/watermark/watermark.php?i=ruta/de/la/imagen/imagenoriginal.jpg

Si, pulsando el botón derecho, intentamos descargar esta imagen nos descargaremos en realidad watermark.php.jpg, es decir la imagen con la marca de agua insertada.

No voy a entrar en más detalles, podéis ampliar la información en el enlace original. Lo que sí voy a hacer es explicar un poco más un detalle importantísimo que creo se queda un poco en el aire.

Cuando accedéis a una imagen mediante el archivo watermark.php, podemos ver en nuestro navegador una ruta de acceso a la imagen similar a esta:

ruta/del/archivo/watermark/watermark.php?i=ruta/de/la/imagen/imagenoriginal.jpg

Si conocemos estas técnicas de protección o simplemente poseemos un poco de intuición, podríamos intentar acceder a la imagen original quitando la referencia al php que introduce la marca:

ruta/de/la/imagen/imagenoriginal.jpg

y voilá … ya tenemos la imagen original sin marcas lista para ser descargada y copiada sin permiso.

Pare evitar esto debemos prohibir el acceso directo a nuestras imágenes desde el exterior. De esta forma, sólo se podrá acceder a ellas mediante el interior, mediante las peticiones que realice nuestra web.
Y esto se hace mediante un archivo .htaccess de configuración de Apache.

Abre un editor de texto y escribe lo siguiente:
#deny all access
deny from all

Nómbralo como htaccess y súbelo al directorio de imágenes que quieres proteger. Renómbralo como .htaccess y ya está. Ahora cada vez que alguien intente acceder a tus imágenes, utilizando la ruta directa desde el navegador, obtendrá como respuesta un error 403:

Forbidden
You don’t have permission to access [...]

Si quieres saber algo más de los archivos .htaccess hay un tutorial muy bueno aquí:
http://enespanol.com.ar/2006/04/03/tutorial-de-htaccess/

Comparte este artículo:
  • Meneame
  • del.icio.us
  • Digg
  • Facebook
  • TwitThis
  • Google
  • Live
  • E-mail this story to a friend!
  • Print this article!

3 comentarios en “Impedir la descarga de imágenes”


  1. Jose Ignacio Hita dice:

    Otra cosa que puede ser muy resultona si se quiere evitar el feo efecto de la marca de agua (y ahora que tienes conocimientos de Flex, que de todo se entera uno, jejeje) es crear un swf que acepte una imagen como parámetro y la ponga a 100%. Con esto, puedes conseguir plantar la imagen sin marca de agua y que no se pueda descargar, sin embargo:

    Sí se podrá pillar si se desencripta el swf o similar.
    Sí se podrá hacer una captura de pantalla con Print Screen.

    En el fondo, con este tema, es como ponerle puertas al campo, si quieres que el usuario vea la imagen, la tiene que ver en su navegador, y para verla en su navegador se la tienes que mandar, así que no hay mucha opción :)


  2. sisi dice:

    Sí que es feo el efecto sí … :puaj: descarté hacerlo en Flex por las capturas de pantalla (ayer mismo yo misma hice una :oops: ) y porque siempre me queda la duda de si todo el mundo tendrá el reproductor flash o una conexión decente pare verlo …

    Lo de desencriptarlo ni se me había pasado por la cabeza … eres un crack amigo :-)


  3. natalia dice:

    k rmoso kiero tener todos estos sisifodichosos en mi e-mail