viernes, 4 de octubre de 2013

Solución al spam en las visitas

El “referer spam” o “log file spam” es un tipo de spam basado en buscadores y consiste en hacer repetidas peticiones desde una falsa URL como referer –es decir, desde una supuesta página web que nos enlaza- que es en realidad un sitio web con publicidad o malware.

Es muy importante no hacer clic nunca sobre esos enlaces desde nuestra página de estadísticas (en todo caso, copiarlo directamente sobre la barra de direcciones), ya que seríamos un referer auténtico en los logs del spammer y le daríamos nueva información que podría aprovechar.

Otro beneficio que pueden sacar de esta práctica en caso de tener público y/o accesible nuestro archivos log, es que algunos buscadores procesarían nuestros enlaces entrantes (referers) –entre ellos el del spammer- y beneficiaría su posicionamiento al constituir nuestro archivo log una fuente a su vez de enlaces salientes hacia el sitio spammer. Esta situación además, sería un riesgo para nuestro posicionamiento ya que Google podría penalizarnos al identificar esos enlaces salientes al sitio spammer como de mala calidad, spam o calificarnos como “sitio potencialmente peligroso” al ser distribuidor de algún tipo de malware.


SOLUCIONES: 

Si tenemos hosting propio, podemos filtrar este tipo de referers con un archivo .htaccess (o modificando el actual) con este código:

RewriteEngine On
 #a known spamming site
 RewriteCond %{HTTP_REFERER} ^http://(.*\.)?egolddomain.(com|net)(/.*)?$ [NC,OR]
 #various "BAD" words when separated by line breaks are probably spam
 RewriteCond %{HTTP_REFERER} ^http://.*(\b)porn(o(graph(y|er))?)?(\b).* [NC,OR]
 #referer url's with excessive - characters are probably spammers
 RewriteCond %{HTTP_REFERER} ^(http://www.)[a-z]+-[a-z]+- [NC,OR]
 #can add as many rules as desired following the pattern of the previous line
 #set an environment variable "BAD_GUY" so we can send their logs to a different file
 RewriteRule ^(.*) %{HTTP_REFERER} [R=301,E=BAD_GUY:1,L]
 #because we have set E=BAD_GUY above, we can do this in our log file:
 CustomLog /var/log/apache/access.log combined env=!BAD_GUY
 CustomLog /var/log/apache/access_bad.log combined env=BAD_GUY

E-mail para recibir el script

No hay comentarios:

Publicar un comentario