Prevenir hotlinking de manera más rápida y efectiva

Hotlinking es una palabra muy conocida para desarrolladores web, pero no tanto para bloggers que no tienen un amplio conocimento de la materia. En síntesis, el hotlinking se produce cuando un sitio agrega (por ejemplo) imágenes de nuestra página. La consecuencia de esto es muy obvia y se desprende enseguida: consumo de ancho de banda.

Son muchísimos los sitios que hacen hotlinking, sobre todo los foros y sitios corporativos. En este artículo les explicaré uno de los métodos que mejor resultado me ha dado para evitar que sitios externos puedan agregar imágenes alojadas en mi host, utilizando el archivo .htaccess.

Para ello simplemente debemos modificar el archivo (o crear si no lo tenemos) .htaccess, agregando lo siguiente:


RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|png)$ - [F]

Con ésto ningún sitio ajeno al nuestro podrá “leer” las imágenes JPG, JPEG, GIF y PNG (los formatos más comunes utilizados en la web). Si lo intentan, recibirán un error 403, Forbidden.

Y si por ejemplo deseamos que para todos los sitios que tienen imágenes nuestras en sus blogs, en vez de aparecer ese error aparezca una imagen definida por nosotros, deberíamos poner:


RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|png)$ imagenes/no-hotlink.jpg [L]

Claro está, el “imagenes/no-hotlink.jpg” debe reemplazarse por la dirección de la imagen que queremos que aparezca cuando alguien intente mostrar cualquier imagen de nuestro sitio.

Como ven, el archivo .htaccess tiene muchas funcionalidades; ésta, es sólo una.

Para más información de hotlinking y .htaccess, pueden ir a la wiki de DreamHost.

4 comentario en este artículoDeje el suyo
  1. interesante lo estaba buscando, mi hosting me permite desde el cpanel hacer esto pero no me deja sustituir una imagen por otra que yo quiera (como el logo de mi blog por ejemplo) así que me viene como anillo al dedo, se agradece dani

  2. perdón por el doble comentario me olvide de preguntarte una cosa :P tenes idea como hacer desde el htaccess para que nadie pueda ver el contenido de las carpetas que no tienen index.htm? por que por ejemplo si subo a una carpeta 10 imágenes y esa carpeta no tiene index se ven las 10 imágenes y no quiero que esto suceda.

  3. hola amigo como puedo hacer, mas bien poner la opcion suscripcion RSS (“suscribirse a esta pagina”)es que la quiero poner en mi web hay alguna linea de comando facil de poner en la pagina?

    te lo agradeceria mucho.

  4. como puedo hacer para poner la opcion de postear o enviar comentario y que se agregen a una pagina como aqui se esta haciendo?

Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

DANIBLOG 2012

WordPress