Los Web Scrappers o ladrones de contenido son un tipo de robot o crawler que indexa contenido recopilando información y artículos de otras webs para -generalmente- duplicarlo, añadiendo bloques de publicidad y lucrarse con el esfuerzo de otros (cosa que vulnera licencias, todo sea dicho).
Este tipo de técnicas habitualmente generan mucha controversia, ya que a algunas personas les parece totalmente lícito, mientras que a otras les parece una estrategia abyecta.
Entrando un poco más en este tema encontramos los llamados planetas, que no son más que (en ámbitos web) un sitio web que recopila a través de feeds RSS los artículos de diferentes blogs o webs (normalmente siguiendo una misma temática o criterio).
Es una idea genial. Hay multitud de planetas muy interesantes que personalmente sigo (aunque siempre suelo leerlos desde la página original). Sin embargo, hay varios puntos que considero importantes como no permitir comentarios en el planeta, dirigir al lector a la web original, no incorporar publicidad, citar la fuente de los artículos u otros detalles que estarían restando mérito al autor del escrito.
Es un tema bastante complicado, pero vamos a intentar simplificarlo. Para «robar» contenido, un scrapper o robot spammer (emails, comentarios, trackbacks, ...) tienen que acceder al feed RSS (usualmente llamado index.xml), así que vamos a aprovechar esa acción para encontrarlos. Necesitaremos acceso a nuestro fichero de logs, generalmente access.log o access_log. Si tenemos acceso SSH a nuestro servidor, mejor que mejor:
egrep "/index.xml" access_log | cut -d" " -f1,12- | sort | uniq -c | sort -n | tail -25
Con este comando conseguiremos separar los accesos al feed RSS, obteniendo la IP y el User Agent, ordenándolo por número de accesos. Finalmente, obtendremos un listado de los 25 accesos más frecuentes.
Hay que hacer notar que del listado resultante, varios accesos serán de usuarios desde navegadores o agregadores como Bloglines o Google reader. Añadiendo el siguiente pipe al comando anterior podríamos filtrar la mayoría de agregadores, quedando:
egrep "/index.xml" access.log | egrep -v "subscribers|Gecko|Liferea|Google Desktop|Akregator|Vienna|Tumblr|Feedshow|Gregarius|Googlebot|Feedreader" | cut -d" " -f1,12- | sort | uniq -c | sort -n | tail -25
Después de esto, obtendríamos -ahora si- un listado más aproximado de usuarios «sin identificar» y posibles scrappers. Hay que ser muy cuidadoso e ir investigando cada entrada. Una serie de consejos:
Si no estás seguro de que el usuario que miras sea un robot, siempre podrías investigar más en tus logs a ver en que otras páginas ha estado, a parte del feed RSS:
grep "IP" access_log | cut -d" " -f7
Finalmente, echa un ojo al artículo bloquear con .htaccess para saber como bloquear a los posibles scrappers que hayas encontrado.
¡OJO! Este artículo NO trata de cómo "robar" contraseñas o claves, cosa que es imposible. En la mayoría de los casos, las claves son robadas por descuídos de la víctima, aquí tratamos como evitarlos.
En realidad, tras este presuntuoso título de artículo, lo que quiero es concienciar a todos aquellos que utilizan contraseñas o claves (no sólo para MSN Messenger o hotmail, aunque es el caso más común) sino de cualquier otro servicio, sobretodo los basados en internet, donde la seguridad cobra más fuerza e importancia.
Muy a menudo recibo correos o comentarios en algunos artículos de usuarios que piden ayuda o preguntan como les han robado la cuenta de hotmail (u otras), algunos incluso preguntan como saber la contraseña de otros MSN Messenger...
Mis recomendaciones son las siguientes:
¡OJO! Esto no es un método para robar cuentas de correo, es un engaño muy frecuente que suelen utilizar los "ladrones".
Como hackear una cuenta Hotmail:
| Longitud | Todos los caracteres | Sólo minúsculas |
|---|---|---|
| 3 caracteres | 0.86 segundos | 0.02 segundos |
| 4 caracteres | 1.36 minutos | 0.46 segundos |
| 5 caracteres | 2.15 horas | 11.9 segundos |
| 6 caracteres | 8.51 días | 5.15 minutos |
| 7 caracteres | 2.21 años | 2.23 horas |
| 8 caracteres | 2.10 centurias | 2.42 días |
| 9 caracteres | 20 milenios | 2.07 meses |
| 10 caracteres | 1,899 milenios | 4.48 años |
| 11 caracteres | 180,365 milenios | 1.16 centurias |
| 12 caracteres | 17,184,705 milenios | 3.03 milenios |
| 13 caracteres | 1,627,797,068 milenios | 78.7 milenios |
| 14 caracteres | 154,640,721,434 milenios | 2,046 milenios |
Y tú, ¿cuántos caracteres tienen tus contraseñas normalmente? ¿Cuántos puntos conocías acerca de este tema? ¿Alguno que se me haya pasado por alto?
¡OJO! Este artículo está indicado para programadores interesados en evitar spam en su blog.
Varios lectores de Emezeta y algunos amigos me han preguntado en muchas ocasiones como consigo evitar los terribles ataques de spam que afectan a casi todos los blogs.
¿Quién no ha recibido una horda de comentarios en perfecto inglés felicitandonos por nuestro sitio e invitando a ingresar a un casino online, alargar ciertas partes de nuestro cuerpo o tomar pastillitas azules cuál protagonista de Matrix o de otras películas menos conocidas?
Hace tiempo, hablé de SpamPoison, un sistema para «envenenar» listas de correo de spammers. Ahora voy a hablar de una técnica que he ideado (desconozco si ya existía, yo al menos la comencé a utilizar a base de pruebas) para evitar el spam en blogs, al más puro estilo de una trampa para ratones.
Ventajas del sistema antispam: Hasta el día de hoy no he tenido ningún problema. El sistema atrapa todos los comentarios de spammers, dejando pasar sólo a los usuarios legítimos.
Desventajas: Puede generar confusión a usuarios que utilicen navegadores de tipo texto, pero además de poco frecuente es muy improbable, puesto que estos usuarios son bastante experimentados. Es posible, también, que si este sistema se comienza a implementar, los spammers busquen formas de «reventarlo».
Para implementar el sistema antispam utilizaremos PHP (o cualquier lenguaje del lado del servidor que dominemos) y CSS. ¡Si! ¡Has leído bien! ¡¡CSS!!.
¿Y cómo es posible? ¡CSS es un lenguaje para visualización y no para programación! Fácil, en realidad lo que hacemos con nuestro sistema es obligar a ir por un camino a los spammers y por otra a los usuarios legítimos.
Vamos a centrarnos en el formulario de envio de comentarios. Por norma general, tiene varios campos (input o textarea) para enviar la información. Cómo mínimo nombre y comentario, frecuentemente también el correo, página web y/u otros.
La gracia del asunto está en un campo input de texto ubicado al principio del formulario.
Dicho campo de texto (que le pondremos de nombre name) tiene un valor por defecto (por ejemplo, el texto: duquesadealba.). Además de esto, le aplicaremos un estilo CSS: display: none. Con esto ocultaremos el campo de forma que NO es visible para los usuarios, pero sí lo es para los robots o spammers.
¿Fácil, no? Pero aún no hemos terminado. El formulario, cómo todo form de su género que se precie, nos llevará a un script (PHP, ASP, etc...) que tratará el comentario para añadirlo a la base de datos, etc...
El truco del sistema antispam reside en que los spammers, por naturaleza, cambian todos los campos llamados comment, comentario, name o nombre por la publicidad que quieren hacer. ¡Perfecto! Ellos mismos han caído.
Un usuario legítimo no verá el campo oculto con CSS y por lo tanto enviará el comentario con la palabra que hemos elegido para identificar usuarios legítimos: «duquesadealba». En cambio, un spammer llegará al formulario y reemplazará el campo llamado name pensando que se trata del nombre y mostrando así el plumero.
Sólo resta añadir una comprobación en el script que recibe los comentarios, para que si el campo «name» no contiene la palabra escogida, no lo añada a la base de datos.
Se puede mejorar el sistema, añadiendo una lista de palabras clave personalizadas, en lugar de una sola palabra.
Y, como ya dije antes, los usuarios con navegadores de tipo texto (que no interpretan CSS) si que verán ese campo «oculto», pero podría bastar con poner un texto «no modificar» o algo similar.
Ya he hablado con anterioridad sobre sistemas de protección antispam para evitar bots que dejen publicidad en comentarios o referers, pero antes de continuar, hagamos una aclaración para los despistados:
Spam:
Mensajes basura, publicidad no deseada.
Existen muchos métodos ideados para combatir estas plagas de spam. La idea es bloquear el acceso a aquellos usuarios (o robots) que acceden a nuestro sitio expresamente para dejar publicidad. Un método bastante usado es el conocido CAPTCHA, una pregunta al usuario en cuestión en la que se muestra un gráfico con letras y/o números no-interpretables por una máquina para verificar si se trata realmente de una persona o un robot.
Este sistema -que comenzó a usarse sobre el año 2000- ha funcionado bastante bien, aunque acarrea cierta desgana a los usuarios. M. Almeida modificó ligeramente este sistema para hacerlo más agradable a los visitantes y que siguiera evitando sólo a las máquinas (bueno... y a algún usuario despistado) pidiendo introducir el apellido de Manuel.
Existen más sistemas para evitar el spam cómo por ejemplo Spam Poison, que se encarga de envenenar a los robots que recogen correos e-mail por la red. Además, manipulando el htaccess como nos hace referencia Inma, podemos deshacernos de muchos spammers.
El problema llega cuando de lo que nos queremos deshacer no es sólo de spammers, sino de trolls. Otra definición para despistados:
Trolls:
Persona que provoca y escribe mensajes incendiarios para incitar al caos en una discusión.
Debemos tener en cuenta nuevos conceptos para evitar a los trolls. La norma por excelencia es moderar los comentarios, bien no dejando pasar ninguno hasta que se revisen (como creo que hace minid, corrijanme si me equivoco) o suprimiendo la opción de comentar, como recientemente hicieron los Microsiervos (en mi opinión una lástima, pero poniendome en su pellejo, comprendo que fue necesario porque no sabemos discutir).
Sin embargo, el sistema que quizás mejor esta funcionando (en mi humilde opinión claro) es el de establecer un Karma, como han hecho los chicos de Barrapunto o meneame:
Karma:
El Karma es un sistema de moderación en la que cada usuario nuevo empieza con un Karma 0, y siempre que éste no sea negativo será candidato a moderar. Asi cada usuario tendrá privilegios o desventajas según sus actos.
Me parece un tema de debate realmente bueno. ¿Conoces algún sistema antispam o antitrolls más? ¿Cuál crees que es el mejor? ¿Conoces o tienes alguna idea sobre otro?
6 consultas efectuadas / Página generada en 0.04 segundos
Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.
Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons
Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)