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.

  • 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

  • perdón por el doble comentario me olvide de preguntarte una cosa :p tenes idea como hacer desde el tacces 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.

  • Lemus

    hola amigo como puedo hacer, mas bien poner la opcion suscripcion rs (“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.

  • Lemus

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