En Google Blogoscoped se puede leer una interesante entrevista con Samy, el joven de 19 años que introdujo un gusano con JavaScript en MySpace.
En la parte técnica de la entrevista, Samy describe como introdujo el gusano en MySpace. Como era de esperar, Samy uso una falla en el Browser que permite ejecutar código JavaScript que no es conforme con la syntax de JavaScript. De esta manera logro introducir su script en su perfil, que se ejecutaba en el Browser, cada vez que un usuario visualizaba su perfil. De esta manera el gusano se fue propagando exponencialmente.
Anecdóticamente cuenta, que cuando ya tenia 200.000 ‘amigos’ se fue a comer un burrito, y cuando regreso nuevamente a su casa ya eran 1 millón.
Ahora ya se están vendiendo T-Shirts conmemorativas…
Max, la falla fundamental la tiene el parser de MySpace. El browser en orden de flexibilidad son permisivos con algunas cosas, en especial IE, pero aqui la falla principal es de MySpace, como lo explican:
—However, myspace strips out the word «javascript» from ANYWHERE.
To get around this, some browsers will actually interpret «java\nscript» as «javascript» (that’s javascript). —
—Traducido: Myspace quita la palabra javascript de CUALQUIER lado (dicho con énfasis).
Algunos browsers interpretan «java\nscript» como «javascript». (es decir no se tiene en cuenta caracter de nueva linea).–
MySpace es el encargado de restringir aún más el navegador y las posibilidades de codigo de sus usuarios y no el explorador en sí.
Si observan el codigo de SAMY, podrán ver que el corazón lo tiene esa \n (nueva linea) que evadió al filtro de MySpace.
Saludos.
ManWare,
Gracias por tu explicación.
Saludos,
Max