Skip to content

Conversation

@hellochloe1989
Copy link

@hellochloe1989 hellochloe1989 commented Dec 2, 2025

Cette PR ajoute à la validation des requêtes de soumission d'entités et de commentaires la vérification que le champ data est un objet (pas le null JSON, pas un nombre, pas une chaine de caractères...).
Sans cette vérification il est possible en forgeant une requête de soumettre des entités et des commentaires avec un champ data de mauvais type.

La PR ajoute aussi une migration qui remplace les éventuels champs data égaux au null JSON en base par un objet JSON vide {}, pour la table entités et la table commentaire, afin d'avoir la certitude que les données sont propres après sa fusion.

Pour mettre en avant le soucis :

  • Forger une requête d'ajout d'entité CEC (cette famille ne contient pas de champ obligatoire et ses entités passent de-facto toutes les validations) qui transmet un data égal à null. Je n'expliquerai pas ici comment, hit me up sur Discord si besoin. Constater que le serveur ne s'en offusque pas et répond que tout va bien
  • Constater en base de données que l'entité a été ajoutée SELECT * FROM entities WHERE data = 'null'::jsonb;
  • Sur l'interface d'admin, tenter d'éditer l'entité en question, et constater le crash

Pour mettre en avant la résolution :

  • Appliquer cette PR, redémarrer le backend (cela applique la migration qui corrige les éventuels data null existants en base)
  • Constater en base de données que l'ajout précédent n'apparait plus pour SELECT * FROM entities WHERE data = 'null'::jsonb;, mais pour SELECT * FROM entities WHERE data = '{}'::jsonb;
  • Sur l'interface d'admin, tenter d'éditer l'entité en question, ca ne crash plus
  • Retenter de forger une requête comme précédemment, constater que le serveur n'est pas d'accord

Fix #71

@hellochloe1989 hellochloe1989 self-assigned this Dec 2, 2025
@hellochloe1989 hellochloe1989 added the bug Quelque chose est cassé ! label Dec 2, 2025
@hellochloe1989 hellochloe1989 linked an issue Dec 2, 2025 that may be closed by this pull request
@hellochloe1989 hellochloe1989 force-pushed the fix-issue-71-null-data-property branch 2 times, most recently from f4e397c to bfdc947 Compare December 9, 2025 14:44
@hellochloe1989 hellochloe1989 marked this pull request as ready for review December 9, 2025 15:04
@hellochloe1989 hellochloe1989 force-pushed the fix-issue-71-null-data-property branch 2 times, most recently from 6eab669 to 8268fe2 Compare December 13, 2025 17:55
@hellochloe1989 hellochloe1989 force-pushed the fix-issue-71-null-data-property branch from 8268fe2 to d577cd9 Compare December 13, 2025 18:45
Copy link

@chitochi chitochi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@hellochloe1989 hellochloe1989 merged commit e574127 into main Dec 14, 2025
1 check passed
@hellochloe1989 hellochloe1989 deleted the fix-issue-71-null-data-property branch December 14, 2025 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Quelque chose est cassé !

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gérer le cas ou la propriété data est null

3 participants