Ne plaisantez pas avec NULL

Une histoire digne d'un vendredi est arrivée à un chercheur en sécurité américain nommé Joseph Tartaro. Il souhaitait se démarquer en commandant non seulement un numéro d'immatriculation unique, mais en le reliant à son métier. Sa première idée était de jouer avec SEGFAULT ou quelque chose de similaire. Mais finalement, il s'est arrêté sur le numéro NULL pour sa voiture et VOID pour sa femme. Vous sentez qu'il y a un problème ? Lisez ci-dessous ce qui a mal tourné à cause de cette innocent plaisanterie, une autre histoire amusante sur M. Null et des leçons sur les bogues lors de la vérification des types de données dans une saisie utilisateur.

Ne plaisantez pas avec NULL

Ainsi, en 2016, notre farceur de la programmation a reçu ses nouveaux numéros d'immatriculation amusants et il devait probablement se frotter les mains avec malice. Il avait même l'espoir que cela le libérerait des contraventions. Ce n'est pas qu'il enfreignait beaucoup de règles, mais l'idée de contrecarrer le système de cette manière semblait assez intéressante pour un expert en sécurité.

Les problèmes ont commencé un an plus tard, lorsqu'il a tenté de renouveler ses numéros en ligne. Cela a beaucoup perturbé le site dédié à cela.

Ne plaisantez pas avec NULL

Le système a considéré le numéro qu'il avait saisi comme incorrect. Les programmeurs ont manifestement fait une erreur quelque part, et le NULL qu'il a entré en tant que valeur textuelle a été mal vérifié. Une erreur de typage non stricte ? Cependant, il a réussi à renouveler son numéro d'un an en utilisant le code dans le lien, et il a un peu oublié tout cela par la suite.

Cependant, il s'est avéré que ce n'était pas la fin des problèmes. L'histoire a ensuite rappelé une vieille blague :

Un soldat au milieu d'un champ essaie de réparer une chenille qui s'est détachée de son char. Soudain, une fée apparaît de nulle part et demande :
— Que fais-tu, soldat ?
— Eh bien, je bricole.
— Veux-tu faire quelque chose de vrai ?
— (rêveusement) Je veux…
La fée agite sa baguette… Et la tourelle du char se détache.

Eh bien, début 2018, il a reçu une amende tout à fait méritée de 35 $. Il aurait pu la contester, mais il était plus simple de payer, la somme n'étant pas élevée. Et là, la fée a agité sa baguette... Et des amendes sont tombées dans sa boîte aux lettres pour des stationnements non réglés, des arrêts dans des zones interdites et autres réjouissances similaires. Des dizaines et des dizaines d'amendes de 37 $, 60 $, 74 $, 80 $... Venues de coins très divers de Californie. Pour des modèles de voitures complètement différents. À cause d'un contrôle de typage défaillant, la valeur NULL a été associée dans la base de données à ses données personnelles. Et chaque fois que le vaillant gardien de la paix oubliait d'entrer le numéro de la voiture dans le système lors de l'émission d'une amende, le prix revenait à notre héros (il aurait aussi fallu taper sur les doigts des développeurs du frontend pour l'absence de vérification de la saisie de l'un des paramètres clés).

À un moment donné, il a reçu deux amendes, émises au même endroit avec quelques heures d'intervalle pour des modèles de voitures complètement différents. Pour couronner le tout, des amendes précédentes sans numéro ont été appliquées rétroactivement. Ainsi, il a même hérité d'amendes de 2014, alors qu'il ne possédait même pas ce numéro. Au final, il s'est retrouvé avec des amendes totalisant plus de 12 000 $.

Ne plaisantez pas avec NULL

Les amendes de parking étaient gérées par une société privée, le Citation Processing Center. Évidemment, Joseph les a contactés et a essayé d'expliquer la situation. Naturellement, le manager au téléphone s'est gentiment dérobé, demandant d'envoyer à nouveau les reçus pour qu'ils puissent vérifier. Mais cela aurait signifié la perte de la seule copie papier attestant de l'erreur dans l'émission de l'amende. Heureusement, il ne l'a pas envoyée. Plus tard, il a remarqué que dans la base de données des amendes, accessible en ligne, le modèle de voiture initial avait été remplacé par le sien. Un autre round de discussions avec les managers, tout aussi inutile.

Finalement, il a dû s'adresser directement au DMV (Department of Motor Vehicles, l'agence gouvernementale chargée de l'enregistrement des véhicules), et grâce à leur aide, il a réussi à réduire la somme assez rapidement à 6262 $, mais cela n'a pas résolu le problème initial. De nouvelles amendes continuaient à arriver. À la date de rédaction de l'article original dans Wired, deux amendes totalisant 140 $ restaient impayées. Ce qui est le plus triste, c'est que le DMV refuse de lui renouveler son immatriculation pour une autre année tant que les amendes ne sont pas réglées. De plus, il n'est pas très clair où aller et qui frapper pour que ce problème soit résolu. Le DMV note que leur système reconnaît correctement ses plaques et comprend l'absurdité de la situation. Cependant, les questions de stationnement sont gérées par les autorités locales, sur lesquelles ils n'ont aucune influence. Donc, cette histoire pourrait encore avoir une suite. La blague a échoué.

M. Null

Christopher Null a encore moins de chance. Il a eu la malchance de naître avec un tel nom. Si Joseph Tartaro ne souffre que d'amendes et seulement depuis environ une dernière année, Christopher s'enfonce de plus en plus dans un océan de souffrances parallèlement au développement des technologies numériques.

Particulièrement, il est gêné par le concept largement répandu de MVP (minimum viable product, produit minimum viable), qui coïncide parfois directement avec le concept de « hop hop, en production ».

Même en passant sous silence toutes les blagues de niveau scolaire sur son nom, ainsi que les accusations qui prétendent qu'il essaie ainsi d'attirer l'attention (ce qui est un bon moyen, si vous êtes un journaliste technique, comme l'est Christopher), des étrangetés surviennent lors de l'utilisation de certains sites Web et applications.

Selon Christopher, la plupart des sites traitent correctement le nom Null. Certains, cependant, rapportent que le champ ne peut pas être laissé vide, ou qu'il s'agit d'un mot réservé. Dans de rares cas, les applications se bloquent simplement. Fait intéressant, il a observé que plus l'entreprise derrière l'application ou le site est grande, plus il aura de problèmes avec son nom.

Il est particulièrement satisfait de sa filtration des données, qui élimine les valeurs null des données déjà enregistrées. Ainsi, il reçoit parfois des e-mails à l'adresse Media LLC (alors que le nom de l'entreprise est Null Media LLC), et parfois dans certains spams, il est simplement appelé « Mr. ». Il a même dû développer des manœuvres de contournement. Par exemple, il ajoute un deuxième prénom ou un initial dans le même champ que le nom de famille, ou il ajoute simplement un point à la fin. Mais parfois, l'obstination du système se révèle invincible.

Ainsi, Bank of America refusait catégoriquement d'accepter son e-mail null@nullmedia.com. Leur système refusait simplement de prendre en compte null dans la partie utilisateur de l'adresse, si bien qu'il a dû créer un pseudonyme info@ spécialement pour la banque. Mais le logiciel bancaire a évolué, et après quelques années... il a cessé même d'accepter null comme partie d'un nom de domaine. Le pauvre a dû créer un banal compte Gmail pour les plus obstinés. Il contient également null, mais pas au début du nom d'utilisateur.

Avez-vous déjà rencontré des curiosités lors du traitement des valeurs système ? Partagez-les dans les commentaires.

Merci de rester avec nous. Aimez-vous nos articles ? Voulez-vous voir plus de contenus intéressants ? Soutenez-nous en passant une commande ou en recommandant à vos amis. 30% de réduction pour les utilisateurs de Habr sur un équivalent unique des serveurs d'entrée de gamme, conçu spécialement pour vous : Toute la vérité sur le VPS (KVM) E5-2650 v4 (6 cœurs) 10Go DDR4 240Go SSD 1Gbps à partir de 20 $ ou comment bien diviser un serveur ? (options disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go DDR4).

Dell R730xd à moitié prix ? Uniquement chez nous 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64Go DDR4 4x960Go SSD 1Gbps 100 To à partir de 199 $ aux Pays-Bas ! Dell R420 — 2x E5-2430 2.2GHz 6C 128Go DDR3 2x960Go SSD 1Gbps 100To — à partir de 99 $ ! Lisez sur Comment construire une infrastructure de classe entreprise avec des serveurs Dell R730xd E5-2650 v4 coûtant 9000 euros pour des clopinettes ?

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster