Por un comentario en el post original, me di cuenta que iWiks está de vuelta. Los últimos días sufrí mucho, pensando que ya no volverían, pues el mes estaba a punto de acabarse y la fecha de “principios” o “mediados” de Marzo había pasado y por mucho.
Tras abrir el enlace, no sabía qué esperar. Recibieron feedback —a veces muy duro—, habían tenido tiempo, abrieron la convocatoria a programadores, crearon un poco más de ruido y dijeron haber aprendido de sus errores.
Sin embargo era claro que estaban verdes, que quien sea que haya estado frente al código tenía muy poca experiencia, no sabían diseñar, no tenían un producto central y carecía totalmente de seguridad. Y no hablemos del tema de la experiencia del usuario, usabilidad y accesibilidad.
Lo primero que vi fue un login muy similar al de la primera versión. Haciéndole al diseñador, intentando innovar y sacrificaron, incluso desde los primeros segundos, la oportunidad de convertir un visitante a un usuario. No por nada facebook despliega su forma de registro sin necesidad de un click extra.
Uno de los conceptos fundamentales de CakePHP es la persistencia de los datos entrados en las formas. Esto permite validar los datos y simplemente pedir que se arreglen si uno está mal. Sin embargo, no se utiliza esto ni por error. Te equivocas en un campo y tienes que llenarlo todo de nuevo. Además son muchos campos. En fin, procedí a registrarme.
Como no soy más que un script kiddie, lo primero que hice fue probar si podía inyectar HTML con mi técnica de la primera vez.
Envié la forma y… nada. De hecho, no sólo eliminó los tags de HTML, sino comillas, el punto y coma y las diagonales. Esto no pintaba nada bien, así que intenté otra vez:
Y el resultado fue..
Sí, iWiks aumentó la seguridad considerablemente; ahora prácticamente sólo podemos poner caracteres alfanuméricos y otros pocos más.
Ahora, lo siguiente que vi fue que a cada mensaje se le puede adjuntar un archivo. Ejecutado de forma pésima, pues el input del archivo es más grande que el botón de publicar. Subí un par de imagenes para probar. Podría subir algún script en php? Bueno, la respuesta corta es sí. iWiks de alguna forma logró ser menos seguro que la última vez y menos usable. Creé una pequeña interfaz que emulara un SSH. A ver qué podía lograr.
Primero encontré dónde estaba la aplicación.
Luego me dio curiosidad por ver el código, así que lo metí en un tar y lo descargué.
Para mi sorpresa, la aplicación entera es un solo controlador, mismo que explica mucho de las funcionalidades de iWiks, en cuestión de seguridad.
Así es, utilizan el método Paranoid para evitar el HTML… y de paso que la gente escriba con más de 50 caracteres diferentes. Se ha convertido en una red social que no acepta preguntas.
Sería difícil encontrar una red social ejecutada de peor forma. Yo no sé qué les pasó por la cabeza al sacrificar libertad de escribir cualquier caracter en favor de la seguridad. Definitivamente hay mejores formas de manejar este tipo de cuestiones, htmlentities es una de ellas, pero hay muchas.
En resumidas cuentas, iWiks sigue en las mismas. Es una verdadera lástima que no acepten ayuda. Ayer mismo, que descubrí el tremendo hueco, le envié un email a Grover, mismo que no ha sido contestado, pero ya el sitio provisional ha sido desactivado, así que esto entra como una simple anécdota.
Actualización: La discusión en Noticias Hacker. Si necesitan contactarme usen la forma de contacto.