No juegues con NULL

Una interesante historia de viernes ocurrió con el investigador estadounidense en seguridad Joseph Tartaro. Quería destacarse, pidiendo no solo un número de auto personalizado, sino vinculándolo a su oficio. Su primera idea fue jugar con SEGFAULT o algo parecido. Pero al final se detuvo en el número NULL para su coche y VOID para su esposa. ¿Siente que algo no está bien? Sobre cómo esta inofensiva travesura terminó para él, otro curioso misterioso Null y sobre las lecciones aprendidas de los errores en la verificación de tipos de datos en la entrada del usuario, lee más abajo.

No juegues con NULL

Así, en 2016, nuestro bromista de programación recibió sus nuevos y divertidos números de auto y seguramente frotó las manos con malicia. Incluso tenía la esperanza de que este movimiento lo liberaría de multas. No es que violara mucho las normas, pero la idea de romper el sistema de esa manera parecía bastante interesante para un especialista en seguridad.

Los problemas comenzaron un año después, cuando intentó renovar los números en línea. Y el sitio web destinado para eso lo dejó muy desconcertado.

No juegues con NULL

El sistema consideró que el número ingresado era incorrecto. Los programadores cometieron un error en algún lugar, y el NULL que él ingresó como valor de texto, al parecer, no fue verificado correctamente. ¿Un error de tipado relajado? Sin embargo, logró renovar el número por un año mediante el código en el enlace, y de alguna manera dejó de preocuparse por todo esto.

Sin embargo, como resultó, estos no eran en absoluto los problemas. La historia más tarde recordó un viejo chiste:

Un soldado en medio del campo intenta reparar una oruga que se ha caído de un tanque. De repente, aparece un hada de la nada y pregunta:
— ¿Qué haces, soldado?
— Pues eso, intentando arreglarlo.
— ¿Y quieres hacerlo de verdad?
— (soñador) Quiero…
El hada agita su varita… Y la torre del tanque se cae.

Así que, a principios de 2018, recibió una multa bien merecida de $35. Podría haberla apelado, pero era más fácil pagarla, la suma no era alta. Y aquí es donde la hada movió su varita... Y el buzón comenzó a llenarse de multas por estacionamiento no pagado, paradas en lugares indebidos y otras alegrías similares. Docenas y docenas de multas por montos de $37, $60, $74, $80... De rincones completamente diferentes de California. Por modelos de coches totalmente distintos. Debido a otra verificación de tipificación errónea, el valor NULL se ligó en la base con sus datos personales. Y cada vez que el valiente guardia de la ley olvidaba ingresar el número de coche en el sistema al emitir la multa, el premio iba a nuestro héroe (aquí también habría que regañar a los desarrolladores del frontend por la falta de verificación de uno de los parámetros clave).

En un momento, recibió dos multas emitidas en el mismo lugar con unas pocas horas de diferencia por modelos de coches totalmente diferentes. Para su completa felicidad, le aplicaron retroactivamente multas antiguas sin número especificado. Así, incluso le llegaron multas de 2014, cuando ni siquiera tenía ese número. Al final, le acumulaban multas por un total de más de $12000.

No juegues con NULL

Las multas por estacionamiento estaban a cargo de una empresa privada, el Citation Processing Center. Naturalmente, Joseph se puso en contacto con ellos e intentó explicar la situación. Naturalmente, el gerente al teléfono se mostró amable pero cortante, pidiéndole que les enviara los recibos para que ellos lo investigaran. Pero eso significaría perder la única copia física que confirmaba la incorrecta emisión de la multa. Y es bueno que no la enviara. Más tarde, notó que en la base de datos pública de multas, disponible en línea, el modelo original del coche había sido reemplazado por el suyo. Otro round de conversaciones con los gerentes, igualmente inútiles.

Al final, tuvo que acudir directamente al DMV (Departamento de Vehículos Motorizados), la entidad gubernamental encargada de los asuntos de registro de vehículos, y con su ayuda logró reducir la cantidad a $6262 bastante rápido. Sin embargo, esto no resolvió el problema inicial. Las multas continuaban llegando. En la fecha de redacción del artículo original en Wired, había dos multas impagas por un total de $140. Lo más triste es que el DMV le niega la renovación de la matrícula por otro año hasta que se salden las multas. Además, no está claro a dónde acudir y a quién golpear para que se solucione este problema. El DMV señala que su sistema reconoce correctamente su matrícula y es consciente de lo absurdo de la situación. Sin embargo, los asuntos de estacionamiento son gestionados por las autoridades locales, sobre las que no pueden influir. Por lo tanto, esta historia aún podría tener su continuación. La travesura no salió bien.

Mr. Null

A Christopher Null le ha ido aún peor. No tuvo suerte de nacer con ese apellido. Mientras que Joseph Tartaro solo tiene problemas con las multas y solo durante aproximadamente el último año, Christopher se sumerge permanentemente en un abismo de sufrimiento a medida que avanzan las tecnologías digitales.

Particularmente le causa inconvenientes el concepto de MVP (producto mínimo viable), que en algunos casos coincide directamente con la noción de 'hágase con prisa y en producción'.

Incluso dejando de lado todos los chistes de nivel escolar sobre su apellido y las acusaciones de intentar llamar la atención (lo cual es un buen método si eres un periodista técnico, como es el caso de Christopher), surgen raras situaciones al trabajar con ciertos sitios y aplicaciones.

Según las afirmaciones de Christopher, la mayoría de los sitios manejan el apellido Null correctamente. Algunos informan que el campo no puede estar vacío o que es una palabra reservada. En raras ocasiones, las aplicaciones simplemente fallan. Curiosamente, según sus observaciones, cuanto más grande es la empresa detrás de la aplicación o el sitio web, más problemas hay con su apellido.

Es es grato que su filtración de datos descarte Null de los datos ya guardados. Así, a veces recibe correos dirigidos a Media LLC (mientras que el nombre de la empresa es Null Media LLC), y a veces en el spam simplemente lo llaman «Mr.». Incluso tuvo que idear maniobras alternativas. Por ejemplo, poner un segundo nombre o inicial en el mismo campo que el apellido o simplemente añadir un punto al final. Pero a veces la obstinación del sistema resulta invencible.

Así, Bank of America se negaba rotundamente a aceptar su correo electrónico null@nullmedia.com. Su sistema simplemente se negaba a aceptar null en la parte del usuario de la dirección, incluso tuvo que crear un alias info@ específicamente para el banco. Pero el software bancario evolucionó rápidamente, y después de unos años… dejó de aceptar null incluso como parte del nombre de dominio. El pobre tuvo que crear una cuenta banal en Gmail para los casos más difíciles. También contiene null, pero no al principio del nombre de usuario.

¿Se ha encontrado con alguna curiosidad al procesar valores del sistema? Cuéntelo en los comentarios.

Gracias por seguir con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más material interesante? Apóyanos realizando un pedido o recomendándonos a tus conocidos, 30% de descuento para los usuarios de Habr en una alternativa única a los servidores de nivel de entrada, que hemos diseñado para usted: Toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps desde $20 o ¿cómo dividir correctamente un servidor? (disponibles opciones con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

¿Dell R730xd a la mitad de precio? Solo aquí 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB desde $199 ¡en los Países Bajos! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — ¡desde $99! Lee sobre cómo Construir infraestructura de clase empresarial usando servidores Dell R730xd E5-2650 v4 que cuestan 9000 euros a un precio asequible?

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster