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)
Files
Related issues
Associated revisions
validators: work around lack of NULL char check in forms.CharField (#46625)
History
Updated by Frédéric Péters 4 months ago
- Project changed from Suivi des traces to Authentic 2
- Subject changed from ValueError: A string literal cannot contain NUL (0x00) characters. to /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'
Updated by Benjamin Dauvergne 4 months ago
- File 0001-misc-check-null-characters-in-query-string-and-form-.patch 0001-misc-check-null-characters-in-query-string-and-form-.patch added
- File 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch added
- Tracker changed from Bug to Development
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
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"
Updated by Benjamin Dauvergne 4 months ago
- File 0001-misc-check-null-characters-in-query-string-and-form-.patch 0001-misc-check-null-characters-in-query-string-and-form-.patch added
- File 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch 0002-validators-work-around-lack-of-NULL-char-check-in-fo.patch added
Petite erreur.
Updated by Paul Marillonnet 3 months ago
- 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__
.
Updated by Benjamin Dauvergne 3 months ago
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.
Updated by Benjamin Dauvergne 3 months ago
Updated by Paul Marillonnet 3 months ago
- Status changed from Solution proposée to 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.
Updated by Benjamin Dauvergne 3 months ago
- Status changed from Solution validée to 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)
Updated by Paul Marillonnet 3 months ago
- Related to Bug #48114: crash migration sur version à jour added
Updated by Frédéric Péters 3 months ago
- Status changed from Résolu (à déployer) to Solution déployée
misc: check null characters in query-string and form data (#46625)