Development #46625
/login/, username/nonce, ValueError: A string literal cannot contain NUL (0x00) characters.
0%
Description
https://sentry.entrouvert.org/entrouvert/publik/issues/4629/
ValueError: A string literal cannot contain NUL (0x00) characters. (23 additional frame(s) were not displayed) ... File "django/db/models/query.py", line 53, in __iter__ results = compiler.execute_sql(chunked_fetch=self.chunked_fetch) File "django/db/models/sql/compiler.py", line 899, in execute_sql raise original_exception File "django/db/models/sql/compiler.py", line 889, in execute_sql cursor.execute(sql, params) File "django/db/backends/utils.py", line 79, in execute return super(CursorDebugWrapper, self).execute(sql, params) File "django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params)
Fichiers
Demandes liées
Révisions associées
validators: work around lack of NULL char check in forms.CharField (#46625)
Historique
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Projet changé de Suivi des traces à Authentic 2
- Sujet changé de ValueError: A string literal cannot contain NUL (0x00) characters. à /login/, username/nonce, ValueError: A string literal cannot contain NUL (0x00) characters.
Comme #45672 mais pour d'autres champs, nonce & username dans les traces repérées, exemples :
- nonce = '_E327108CF392D4C3CEE091EE75ADBFD07lwfr\x00\rhjv7a'
- username = '\x00gf0zg" a=ba04zg'
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Fichier 0001-misc-check-null-characters-in-query-string-and-form-.patch 0001-misc-check-null-characters-in-query-string-and-form-.patch ajouté
- Fichier 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
1. Solution globale via un middleware pour les query-string et les form data classiques
2. monkeypatch de CharField pour les formulaires multipart/formdata et de rest_framework pour les contenus JSON, restera les éventuels contenus JSON parsés "manuellement"
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Fichier 0001-misc-check-null-characters-in-query-string-and-form-.patch 0001-misc-check-null-characters-in-query-string-and-form-.patch ajouté
- Fichier 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch ajouté
Petite erreur.
Mis à jour par Paul Marillonnet il y a plus de 3 ans
- Pourquoi la classe de validateur doit-elle être déconstructible ?
Dans une moindre mesure :
- La modif sur
src/authentic2/views.py
dans 0002 me paraît être du code churn pour rien. (Peut-être tu avais commencé des trucs dans ce fichier puis laissé tombé en oubliant de restaurer à l'état initial ?)
- Du détail franchement, mais dans les commentaires de
src/authentic2/__init__.py
je laisserais juste le lien vers le ticket django qui est l'info manquante la plus importante. Le ticket redmine EO on l'a déjà dans le message de commit. Et le commit GH ne nous dit pas grand chose, je ne fais pas le lien entre leur ajout d'un formulaire dans l'admin et ton tour de passe-passe surCharField.__init__
.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Paul Marillonnet a écrit :
- Pourquoi la classe de validateur doit-elle être déconstructible ?
Aucune idée j'ai copié/collé le code de Django, si ça te passionne il est là https://github.com/django/django/blob/master/django/core/validators.py#L540
Dans une moindre mesure :
- La modif sur
src/authentic2/views.py
dans 0002 me paraît être du code churn pour rien. (Peut-être tu avais commencé des trucs dans ce fichier puis laissé tombé en oubliant de restaurer à l'état initial ?)
Yep je vire.
- Du détail franchement, mais dans les commentaires de
src/authentic2/__init__.py
je laisserais juste le lien vers le ticket django qui est l'info manquante la plus importante. Le ticket redmine EO on l'a déjà dans le message de commit. Et le commit GH ne nous dit pas grand chose, je ne fais pas le lien entre leur ajout d'un formulaire dans l'admin et ton tour de passe-passe surCharField.__init__
.
Ok.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Mis à jour par Paul Marillonnet il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Benjamin Dauvergne a écrit :
Aucune idée j'ai copié/collé le code de Django, si ça te passionne il est là https://github.com/django/django/blob/master/django/core/validators.py#L540
C'est https://code.djangoproject.com/ticket/21275.
Ack.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 7a3be23b0d35135e2d6c45e51fdf97d4ffc23751 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue Oct 6 11:58:49 2020 +0200 validators: work around lack of NULL char check in forms.CharField (#46625) commit d3c962e09588ba7f2268814ed747bff3232b71ad Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue Oct 6 12:40:08 2020 +0200 misc: check null characters in query-string and form data (#46625)
Mis à jour par Paul Marillonnet il y a plus de 3 ans
- Lié à Bug #48114: crash migration sur version à jour ajouté
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: check null characters in query-string and form data (#46625)