El nombre de una usuaria deja en evidencia un gran fallo del código de Apple
Apple tiene un fallo en iCloud que ha sorprendido a expertos en programación por lo básico que es, afectando especialmente a usuarios con un nombre concreto.
8 marzo, 2021 19:59Noticias relacionadas
Imagina no poder usar un servicio de almacenamiento en la nube porque tu nombre provoca un fallo en el sistema; eso es lo que le ha ocurrido a Rachel True, cuyo apellido será familiar para cualquiera que sepa algo de programación.
Normalmente, los nombres de los usuarios no influyen en los programas y servicios que usan; son sólo otra variable más que almacenar en la base de datos. Sin embargo, eso es sólo así si todo funciona correctamente y los programadores no han cometido errores de novato.
Uno de estos errores consiste en no validar y escapar los datos obtenidos del usuario, una mala práctica que ya es casi imposible de encontrar, pero que aún sigue siendo un tropiezo común en algunos servicios.
El nombre que bloquea iCloud
Cuando Rachel True usa iCloud, el servicio de almacenamiento en la nube de Apple, recibe un error muy raro, que probablemente no habrán encontrado muchas personas.
Por culpa de este error, afirma que lleva seis meses con la cuenta ‘congelada’, ya que no puede usarla para nada, sin importar el dispositivo que use o cómo se conecte. Su primera sospecha, de que esto se trataba de un error de software y no de hardware, era correcta, como confirmaron programadores que contactaron con ella a través de Twitter.
El calvario de True se hizo viral en redes sociales y en sitios relacionados con programación, porque al ver el mensaje de error muchas personas inmediatamente se dieron cuenta de lo que estaba pasando; seguramente, porque lo habían sufrido antes en sus carnes.
Por qué ‘TRUE’ es especial
El mensaje de error fue el siguiente
REPORTED ERROR TITLE: Type error: cannot set value ‘true’ to property ‘lastName‘
Básicamente, el mensaje indica que es un error de tipo de dato, afirmando que el valor de la propiedad ‘lastName’ (apellido) no puede ser ‘true’. Pero, ¿por qué no? ¿significa eso que los que se apelliden True no pueden usar iCloud, u otros servicios.
Anyone else getting this error from Apple iCloud ? In past or now?
— Rachel True (@RachelTrue) February 27, 2021
I’m 6 months deep freeze & looking for any help.
I rem dead coding languages like kobalt.. & this seems like an Apple coding issue — not hardware pic.twitter.com/05EJmG3d6Y
TRUE es un tipo de valor especial, que se puede asignar a una “variable booleana”, o lógica. Este tipo de dato puede tomar dos valores diferentes: TRUE o FALSE, verdadero o falso, 1 o 0. Un ejemplo muy básico es una página web que nos pide aceptar los términos de servicio marcando una casilla; si la marcamos, una variable que se puede llamar “terminosAceptados” tomará el valor de TRUE.
Hay que aclarar que lo que se guarda no es la palabra “TRUE”, sino que el bit se “enciende” como 1; si fuese FALSE, el bit se “apaga” como 0.
En el caso de Apple, cuando el usuario introduce su apellido, este se guarda en la variable ‘lastName’, que sirve para almacenar cadenas de caracteres. El problema es que el sistema está interpretando el nombre “True” no como una cadena de caracteres, sino como el valor TRUE. Al intentar guardar un valor de variable “booleana” en la variable que sólo acepta caracteres, se produce el error.
Este es un fallo común, y tiene fácil solución; es un proceso conocido como “validar y escapar” los datos, que consiste en convertirlos a caracteres, eliminando código y partes innecesarias que podrían suponer un problema. Es una práctica ya aceptada en la industria, especialmente para evitar ataques hacker que intentan ejecutar código en el servicio, y por eso es muy extraño que Apple haya caído en el error de no implementarla.
Thank you coders & others for amplifying my icloud issue/query. May help bring attention to a big glitch that could affect many more users than I eventually, if not fixed.
— Rachel True (@RachelTrue) March 6, 2021
I've been told I'll hear back Mon or Tues earliest re latest round w/ apple help. Not good enough frankly.
Este incidente no deja muy bien a Apple, que al menos ya ha contactado con Rachel True, prometiendo que tendrán más noticias para esta semana; con suerte, para entonces habrán solucionado el problema.
Aunque en otros tiempos era muy común encontrarse con problemas al introducir datos en programas y apps, hoy en día las buenas prácticas se han extendido por todo el sector; pero aún quedan algunos servicios que no han sido corregidos.