En este caso hablo de Scripts para Greasemonkey, una extensión de Firefox que permite, mediante ligeras o complejas lineas, modificar en tiempo real el contenido de una pagina. Para ello usa el lenguaje Javascript, aunque esto es algo que a fin de cuentas nos la sopla en esta entrada. (el saber no ocupa lugar, pero el texto para expresarlo si coponcio!)
Bien, en la mayoría de lenguajes de programación existe una forma u otra de integrar un código externo sin necesidad de copiarlo íntegramente, lo cual es muy cómodo siempre y cuando se sepa con seguridad el contenido de dicho código... Pero, que ocurre cuando no tenemos control sobre el contenido del mismo y el autor original se toma una dosis superior a la habitual? Para ilustrarlo, nada mejor que un
Como se que la mayoría de los que leerán este blog
Pongamos el primer ejemplo de código ajeno:
Bien, teniendo estos dos fragmentos, si yo escribo algo tal que asi...
De este modo, si yo en un futuro agrego/modifico cualquier linea en el código ajeno (por ejemplo, 4 borra todo lo que encuentres), esta pasaría automáticamente al código propio, generalmente al recompilar todo el asunto, pero en el caso de Greasemonkey dicho proceso se realiza cada vez que se carga el script, cosa que sucede cada vez que se carga la página que lo usa, por lo que el control de estas "importaciones de terceros" es prácticamente nulo.
Y esto es lo que ha ocurrido en el caso que comentaba arriba, donde numerosos scripts para dicho juego, alojados en la conocida comunidad userscripts.org, heredaron sin saberlo un código que, si bien bastante simple, era igual de destructivo... Provocando que múltiples jugadores perdieran "ciudades" en el mismo. (Vamos, dicho finamente una gran putada/meses/años en según que casos)
El código simplemente detectaba una "ID", lo insertaba en la correspondiente "URL" que realizaba la función de borrar, tras lo cual automatizaba la aceptación del formulario que debía aparecer pidiendo la confirmación a dicha acción... Es lo que tiene "Automatizar" algo, que se hace de forma automática :)
Normalmente, los Scripts para dicho juego cumplen determinadas funciones especificas que, generalmente, agilizan algunos aspectos del juego (incluso automatizar, cosa prohibida pero que mas de un
Obviamente
Algunos autores de la mencionada comunidad ya han tomado medidas, usando una copia propia del código afectado sin el "huevo de pascua" en cuestión... Usar las cosas sin saber o al menos, sin controlar sus cambios, tarde o temprano pasa factura.
Esta entrada va dedicada a "mi churrero", uno de los Administradores del juego comentado en la comunidad Española :3 (te dejo anónimo, si quieres créditos ya sabes donde pedirlos... al fondo bajo la mesa)
Che repelotudo del orto, poné el código que quiero hackiar otra ves la comunidad!! xDDD
ResponderEliminarP.D Buena entrada, me va gustando la temática que va cogiendo tu blog :)
Vaya vaya... pues si va gustando esto habrá que hacer algo para remediarlo no? ^^.
ResponderEliminar"otramierdecillasimilar.. "xDDD jajajajajaja, que bueno.
ResponderEliminarQué minimo que si se copia y pega o se usa un script ajeno el de leerlo...
Se nota que era temprano nena... por mucho que se lean el código, el problema es que este puede ser modificado por el autor original sin que los "herederos" verifiquen dicha actualización, ahí el problema de importar código ajeno ^^.
ResponderEliminarHasta el momento de "la catástrofe" los códigos alterados eran completamente funcionales, de hecho la mayoría de autores han rescatado una versión "limpia" de dicho código para reimportarlo, esta vez bajo su supervisión.
Obviamente lo mas seguro seria recoger únicamente la parte que se necesite, pero no se le pueden pedir peras al olmo :).