Gravatar de Armonth

Primeras medidas anti-hotlinking

Como ya he dicho muchas veces, no me gusta la idea de cerrar el grifo a cal y canto (principalmente porque también pagáis el pato los que leéis vía feeds), tener una lista actualizada de agentes de usuario para identificar lectores de feeds y hacer “listas blancas” no es poco trabajo y si no recuerdo mal el tener un htaccess con cientos de líneas puede resentir el rendimiento.

En uno de los últimos test’s que he leído, un servidor puede enviar hasta 5 veces más peticiones si prescinde de mod_rewrite, en resumidas cuentas: no creo que el tener el htaccess con 200 RewriteCond sea buena idea.

Otro asunto (que no tengo bastante claro) es como afecta tantos accesos de imágenes al rendimiento de Apache aunque actualmente el rendimiento no es problema. Las medidas son por limpiar la lista de referidos la cual suelo usar para descubrir quién me enlaza.

Por ello he hecho un simple apaño: poner en lista negra las principales plataformas de blogs, lo añadido al .htaccess es este bloque de código:

# BEGIN hotlinking filter
RewriteEngine On
RewriteCond %{HTTP_REFERER} wordpress\.com [OR]
RewriteCond %{HTTP_REFERER} myspace\.com [OR]
RewriteCond %{HTTP_REFERER} spaces\.live\.com [OR]
RewriteCond %{HTTP_REFERER} blogcindario\.com [OR]
RewriteCond %{HTTP_REFERER} youtube\.com [OR]
RewriteCond %{HTTP_REFERER} blogger\.com [OR]
RewriteCond %{HTTP_REFERER} blogspot\.com [OR]
RewriteCond %{HTTP_REFERER} livejournal\.com
RewriteRule \.(jpe?g|gif|bmp|png)$ nohotlink.gif [L]
# END hotlinking filter

¿YouTube? Pues sí: algunas personas se ponen imágenes incluso de 200KB en su perfil de Youtube. Y de paso veremos en qué medida afecta el hotlinking a SigT (todos los hotlinkings de Abril y Marzo provienen de esos ocho sitios).

Datos actuales de tráfico sólo en imágenes:

  • 667.776 accesos en 20 días (33.388 al día).
  • 2089MB en 20 días (104.5MB al día).
  • Tráfico total en 20 días correspondiente a imágenes: 34.16%.

Veremos qué sale a final de mes.

14 Comentarios (feed)

  1. Gravatar de Shora Shora nos comenta:

    Pues voy a hacer lo que has hecho tú. Porque en el caso de mi blog, que tengo una bestialidad de fotos, estoy viendo que cada vez las imágenes gastan mucho más ancho de banda. Y desde que estoy indexada en Google Images, lo noto muchísimo más.

    Lo típico, alguien busca alguna imagen desde google y pone la foto alojada en mi blog en lugar de guardarla y subirla desde el suyo propio.

    Si no tomo con el tiempo medidas anti-hotlinking, me arrasan el blog, fijo xD

    Muchas gracias por mencionar el código :)

    Jueves, 19 de Abril/2007 @ 9:17

  2. Gravatar de Reboot Reboot nos comenta:

    Yo como casi todas las imágenes tochas las voy repartiendo entre imageshack, flickr y photobucket :D

    Jueves, 19 de Abril/2007 @ 12:15

  3. Gravatar de Armonth Armonth nos comenta:

    Espero que tengas backup reboot que si no… :)

    Jueves, 19 de Abril/2007 @ 16:40

  4. Gravatar de j_aroche j_aroche nos comenta:

    julugrun, todo eso solo en imágenes 0_O

    Jueves, 19 de Abril/2007 @ 16:40

  5. Gravatar de Daniel Seijo Daniel Seijo nos comenta:

    Vaya, ¿las imágenes afectan al rendimiento? ¿el rendimiento no es problema?

    Yo casi opino al contrario, en tu blog apenas hay fotos, ¿no? Pero en todo caso, estando en Dreamhost la transferencia es prácticamente ilimitada, ¿para qué restringir el hotlinking? (ok, por el tema moral, pero por un tema técnico no veo el problema).

    No creo que el mod_rewrite ni servir una imagen afecten excesivamente al rendimiento, en el sentido de que dudo que sean un gran porcentaje en la carga de CPU que supone generar una web con wordpress.

    Yo por el momento nunca he hecho nada para evitar el hotlinking, en una ocasión estuve a punto con un blog que copiaba todo el contenido con imágenes incluidas, pero en todo caso lo que me fastidiaba era el contenido, no las imágenes.

    Jueves, 19 de Abril/2007 @ 16:57

  6. Gravatar de Armonth Armonth nos comenta:

    Daniel te contesto:

    Las imágenes de por sí no afectan pero el mantener muchos hilos de Apache abiertos sí. Fijate que hablo de “rendimiento” no de “CPU”, lo acabo de buscar y no lo encuentro pero hace poco (cuando escríbi sobre FastCGI) tenia a mano el último benchmark que he visto (las pruebas eran de peticiones en X segundos con PHP, PHP as CGI, PHP CGI + FastCGI, PHP CGI + FastCGI + eAccelerator y algunas de las anteriores opciones con y sin mod_rewrite) y venia lo de siempre: misma página con mod_rewrite activado es servida X veces, sin mod_rewrite hasta X*5.

    Como ya digo no es problema de rendimiento/transferencia (actualmente al menos) pero si vas revisando los referers de tu sitio y te encuentras 3000 referers distintos y de ellos la mitad provienen de esos 7 sitios porque alguien enlaza una imagen… te joden la diversión de mirar quién te enlaza y qué dice de ti.

    Por otro lado si mantienes menos hilos de Apache ejecutandose al mismo tiempo seguramente acabas ahorrando CPU (no porque sea una imagen si no porque es un proceso ejecutandose para poder enviarla) no es la primera vez que en una web activo gzip y el consumo de CPU que provoca es +/- absorbido por el ahorro de tener menos hilos enviando información en ese momento.

    Jueves, 19 de Abril/2007 @ 17:21

  7. Gravatar de Reboot Reboot nos comenta:

    “Espero que tengas backup reboot que si no… :)”

    Ahm… creo que sí, pero… ahora que lo dices, mañana haré un barrido para pillar las imagenes y guardarlas en local.

    Jueves, 19 de Abril/2007 @ 22:48

  8. Gravatar de Daniel Seijo Daniel Seijo nos comenta:

    Armonth tienes razón, estaba pensando a “más alto nivel”, olvidándome de hilos de apache. Cuando necesite contratar un optimizador de apache ya sé a dónde recurrir xD

    Viernes, 20 de Abril/2007 @ 12:04

  9. Gravatar de Armonth Armonth nos comenta:

    Daniel bueno… tampoco soy un experto, pero siempre se puede echar una mano.

    Viernes, 20 de Abril/2007 @ 18:51

  10. Gravatar de Alex Alex nos comenta:

    Yo le incluiría Wordprexy.com :p

    Jueves, 20 de Septiembre/2007 @ 3:02

  11. Gravatar de Anna Anna nos comenta:

    Hola.

    Quiero abrir un blog, y esto me gusta, aunque yo solo deseo que dos direcciones de blog en concreto no puedan acceder al mio.
    Supongo que podran leer en mi blog ¿O no?
    ¿Qué debo hacer exactamente para implementar este recurso en mi blog?
    Gracias de antemano.

    Jueves, 27 de Septiembre/2007 @ 9:33

  12. Gravatar de Armonth Armonth nos comenta:

    Anna pues crear un fichero .htaccess con el código que se muestra en el artículo. Si sólo quieres dos blogs puedes añades sólo esos dos blogs.

    Jueves, 27 de Septiembre/2007 @ 15:01

  13. Gravatar de Jep Jep nos comenta:

    Armonth, cómo miras los referers de la imagenes?

    Domingo, 27 de Enero/2008 @ 4:27

  14. Gravatar de Armonth Armonth nos comenta:

    Jep mirando los logs de Apache, el visitors y/o en general cualquier sistema de estadísticas te puede indicar que referidos mueven más “tráfico” (que no visitas): muchos sabes de antemano que no te han enlazado y el tráfico es por culpa de un hotlink…

    Domingo, 27 de Enero/2008 @ 12:44

No seas tímido, da tu opinión

Sé respetuoso con los demás, la diferencia de opiniones enriquece la discusión, los comentarios bajo ciertas circunstancias pueden ser moderados y requerir aprobación.