Problema de diseño en twitter
Hace ya algunas semanas que tengo mi cuenta en twitter twitter.com/michoacano y he encontrado algunos problemas :-|, problemas a los cuales no se les podría llamar bugs, si no mal diseño.
Uno de ellos es que cada usuario tiene un ID numérico unico, y al parecer consecutivo entre los otros usuarios. ¿Cual es el problema con esto? hace algún tiempo hablaba sobre el problema de tener ids numéricos consecutivos , pues cuando pasa eso, es fácil recorrer todo el sistema automáticamente, si alguien descubre un bug le seria facil explotarlo en la mayor parte del sistema.
¿Como se el ID de un usuario en determinado en Twitter?
Solo falta iniciar sesión a tu cuenta de twitter, ir a una url de otro usuario como Miguel de Icaza y ver la url que nos lleva el link de “add”.
http://twitter.com/friendships/create/823083
Y pues “82083″ es el id único de cada usuario.
¿Y que se puede hacer?
Cualquier persona puede hacer un Script para empezar agregar amigos recorriendo todo el sistema, no mas cambiando el id /friendships/create/XXXXXX podría empezar desde el 1 hasta lo que se quiera, y aunque los ID no son consecutivos, la diferencia entre uno y otro es tan pequeña que eso no lo hace un problema. Además de que twitter no tiene alguna protección contra este tipo de acciones yo hice un script sencillo en java y descubri todavía mas cosas….
Para hacer la petición a /friendships/create/XXXXXX lo único que hace falta es mandarle la session y ya, eso es todo, la cabecera HTTP referer no la verifica, es todo todavía hace mas fácil programar el ya simple script, si INCREÍBLE
, esto se podría haber evitado(creo yo), si el sistema analizara que el referer, osea la página de donde se pulso “add” viene del usuario que corresponde al id numérico, por lo que para agregar a alguien y hacerlo automáticamente tendrías que conocer su nombre de usuario y su ID.
La sesión nunca caduca, o al menos dura varios dias. El script que hice le puse la sesión que había obtenido de ese día, luego en los siguientes días lo volví a correr y seguía funcionando…. entraba al navegador, iniciaba sesión , twitter me daba otra y la que ya tenia seguía funcionando
¿Se me imaginan que no se podría hacer con eso?… se los dejo a su imaginación.
Mis pruebas las hice con este user:
url:http://twitter.com/thehacker
- 73 Followers
- 17 Updates
Mi meta era ser el mas popular de twitter, el que tuviera mas followers, pero me dio hueva y ya no le seguí. ¿Que conseguí? pues nada que valga la pena solo estaba probando, tengo mas amigos que otras personas, mas followers que mi cuenta principal, ese dia recibi como 200 visitas a mi web desde twitter.
Ya no sé si me extendí mucho con esto, esto lo puse no por que haya sido el primero, si no por que veo que ya varias personas están haciendo lo mismo, creo que en poco tiempo twitter se convertirá en un medio de SPAM en tiempo real si los administradores no hacen algo, eso si seria un problema grave.
Ya por ultimo xiam hace poco hizo unas graficas lindas de twitter, según me dijo hizo “spidering” a twitter, por lo que recorrer twitter por si mismo, el propio sistema no lo facilita.