Credit image

¿Te gusta el diseño web? ¡Echa un vistazo a la documentación de LenguajeCSS.com!

Referer SPAM: Evitar bots y spammers

Lo prometido es deuda, y hace algunos días comenté que estaba probando un sencillisimo, pero creo que de momento efectivo repelente de bots spammers, sobre todo los famosos referers spammers entre los que se incluyen clásicos como el texas holdem, casino cash y tantos otros.

Un referer (o referido también llamado en español) es un dato que cada visitante deja al ingresar en un sitio web, dónde muestra desde que sitio web ha llegado. Asi, por ejemplo, al buscar una palabra en Google y pinchar en el primer enlace, el referer del que estamos hablando sería la página de Google.

Conociendo el significado de los referers, nos imaginaremos lo que es el referer spam: publicidad que dejan algunos robots/spammers dejando sus webs como referer a diestro y siniestro. Esto se ha convertido en un verdadero quebradero de cabeza para muchos autores de páginas webs, los cuales sufren tres factores: reducción del ancho de banda consumido por estos parásitos, spam en forma de comentario o mensaje enviado por metodo POST y referers falseados en sistemas de estadísticas, trackers u otros.

Por la red se encuentra bastante información sobre el asunto. Puedo resaltar algunos como Claudio, que comenta una forma de bloquear spam con el Apache. Alex habla de evitar el referer spam en Movable Type y en barrapunto se hicieron eco del tema hace ya varios meses.

El inconveniente de usar métodos cómo modificar configuraciones de Apache, uso de iptables o similares es que la mayoría de los usuarios no tienen dominio sobre estos aspectos o no pueden hacer cambios en ellos. Sin embargo, si lo podrían hacer con otros sistemas como el lenguaje PHP, con las cualidades necesarias de ser sencillo para editar, tener permiso y bloquear a estas especies de sanguijuelas.

La instalación y configuración del script es de lo más sencilla. Lo primero es descargar el script proteccion.php.txt, renombrarlo a proteccion.php e incluirlo en nuestro sitio web. Finalmente lo llamamos desde nuestra página principal en PHP en la primera linea con un sencillo:

include('proteccion.php');

La explicación del código es sencilla. Nos basamos en el uso de PHP como lenguaje y de las expresiones regulares como arma. La variable spammers se encarga de recoger los dominios de los parásitos mientras que la variable referer es la que se encarga de comparar más tarde si el visitante es o no un spammer:

  • Sencilla forma de ampliar la lista negra de parásitos.
  • Esta lista solo influye en el nombre de dominio y subdominio del spammer. Asi pues un visitante que acceda desde la siguiente página web: http://www.miblog.com/articulo/el-poker-en-casinos no será bloqueado.
  • Los dominios asignados sólo han sido .com y .net, ya que (al menos yo) de momento no he encontrado spammer desde otro.
  • Simplificación y rápidez gracias al uso de expresiones regulares.
  • Devuelve un código HTTP 404 error al visitante que es identificado como spammer. Esto es bastante interesante, ya que la mayoría de los bots hacen publicidad solo en los servidores que responden, eliminando a todos aquellos que devuelven un 404 error para no saturar su base de datos y no colapsar su sistema de peticiones sin sentido.

Esperemos que sirva de ayuda a mucha gente y podamos comentar todos los errores o modificaciones que pudieran hacer más interesante la protección.

Escrito por Manz, el , en blogs. Comentarios recibidos: 14.

14 comentarios de lectores
Senet
Senet
1

Muy buen recurso Manz . Saludos!

Averia
Averia
2

Por suerte y de momento no recuerdo haberme encontrado en tal caso pero ya he descargado el archivo para probarlo, nunca se sabe!!!

Driadan
Driadan
3

El otro dia se me ocurrieron una idea acerca del antispam que has hecho: por que no tener una lista común modificable por todos (estilo wiki)? de esa manera seria meterle un cron o algo por el estilo para que hiciese una copia a local cada cierto tiempo (para evitar que se estuviese consultando continuamente). Si es estilo wiki, en caso de que algun spammer se borrase a si mismo, solo habria que hacer un rollback, y si acaso obligar a registrarse a la gente para poder modificarla.

Manz
Manz
4

No esta nada mal la idea Driadan, pero primero me gsutaría ver que tal funciona el sistema y que la gente lo pruebe o recibir más comentarios sobre él, para saber que tal funciona. ¡Gracias por la sugerencia!

Clbustos
Clbustos
5

Buena onda por nombrar el artìculo. Un sólo alcance con respecto a utilizar htaccess: si bien es un poco más complicado, tiene la gran gracia de no sobrecargar el servidor con procesos php. Por darte un ejemplo, con mi pobre Pentium III haciendo de servidor, a razón de una petición por segundo de spam, el bloqueo por PHP colapsaba absolutamente el sistema, en tanto que por Apache sòlo alcanzaba un 10% a 20% de uso de CPU. Además, no ocupa acceso a directo duro

javier
javier
6

Los mejores sistemas antispam son los que el usuario no puede ver. Voy a probar este a ver como va :)

PolloFrito
PolloFrito
7

Es una lacra los "cialis, viagras, levitras' y demas basurilla. Me tenian algunos libros de visitas, forillos y sistemas de mensajess sin registros llenos de esos mensajes pero se me ocurrio poner un acceso mediante clave para publicar mensajes basado en la letra ñ, estos tio no tienen ñ en su teclado supongo y mano de santo. basicamente uso el siguiente script. http://www.webexperto.com/articulos/articulo.php?cod=83

tuadmin
tuadmin
8

bueno esto esta super bien por lo demas me gusta el articulo aunque yo uso captchaencriptado algo simple y facil bueno epro esta sueprme ste articulo chauuuuuuuu x

Jordi
Jordi
9

Hola me a encando el script, tengo dos consultas, hay alguna forma de poder ir actualizado los spamers, y la otra cuestion es la siguiente, estoy empezando con la prgramación en php y estoy trabajando con la funcion phpmailer, mi duda es saber si los spamers pueden ver el codigo php fuera del los tags html Muchas gracias.

Diamante
Diamante
10

No, no me sirviò de ayuda para nada porque no encuentro detalles de procedimientos. espero que me expliques en el msn, Manz.

Lawrence
Lawrence
11

Como incrusto esa orden en una web hecha con HTML???

XeBuZer0
XeBuZer0
12

Hola gente,necesito ayuda con lo siguiente... Resulta que tengo una web en blogspot, pero no tengo un servidor ni un dominio, sino que es el host gratuito de blogger, y ultimamente he tenido mas de un spam referer de Rusia a los cuales incluso he leido infirmacion de que se les atribuye el robo de contraseñas de quien visita el sitio unsando tecnicas que aun se desconocen, igual solo para que tengan cuidado, les dejo los que mas me han aparecido: http://www4.savegco-antivir.com http://domar.ru Ahora bien, lo que me gustaria saber es ¿como instalo el proteccion.php en mi web? Ya lo baje, pero ¿como hago para que tanto mi web como mis post "llamen" a proteccion.php cada vez que se cargue mi pagina? Ademas me gustaria saber si no hay algun efecto colateral, si por ejemplo webdejuan.blogspot.com o pedrolopez.com son mis referers y son auntenticos; ¿como saber si no podiran ser bloqueados tambien el proteccion.php? Y por ultimo, si ya tengo identificado un spam referer (como el de domar.ru o el de savegco-antivir.com) ¿como bloquerar ese tipo de sitios especificamente para que no se puedan conectar a mi web? Como les digo, es un blog, y no tengo servidor dedicado, asi que ¿como edito el codigo html de mi web para que no tenga mas esta molestia ? Muchas gracias por la informacion y ojala me puedan ayudar :)

XeBuZer0
XeBuZer0
13

gente, ademas ya intente hacer lo que el usuraio new mix posteo en esta web http://es.kioskea.net/forum/affich-188477-donde-insertar-y-combinar-php-con-html Pero al incluir el codigo del archivo "proteccion.php" en el codigo html de mi web, el editor de blogger me tira el error de "Declaración de variable no válida en máscara de página: La variable se utiliza, pero no está definida. Información: spammers" y por lo visto mo hay manera de forzarlo a que se guarde tal cual, asi que ¿que mas puedo hacer?

Fernando AEC
Fernando AEC
14

atravieso el mismo problema que tú. Por favor si alguien nos puede ayudar con este tipo de inconveniente. Le estaría muy agradecido.

Publica tu opinión

Si lo deseas, puedes utilizar el siguiente formulario para publicar tu opinión o responder a alguna de las existentes:

Previsualización

Aquí se previsualizará su comentario. Revise que sea correcto antes de publicarlo.