Development #33087
NoReverseMatch sur logout avec next \"backend
0%
Description
C'est dans le cadre d'un fuzzing, mais la réponse est assez bizarre.
Internal Server Error: /logout/ NoReverseMatch at /logout/ Reverse for '\"backend' not found. '\"backend' is not a valid view function or pattern name. Request Method: GET Request URL: https://connexion-xxx.test.entrouvert.org/logout/?local=ok&next=%5c%22backend Django Version: 1.11.20 Python Executable: /usr/bin/python Python Version: 2.7.13 Python Path: ... Server time: mar, 14 Mai 2019 12:54:30 +0200 Installed Applications: '' Installed Middleware: '' Traceback: File "/usr/lib/python2.7/dist-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.7/dist-packages/authentic2/views.py" in logout 575. response = utils.redirect(request, next_url) File "/usr/lib/python2.7/dist-packages/authentic2/utils.py" in redirect 326. include=include, exclude=exclude, fragment=fragment, resolve=resolve) File "/usr/lib/python2.7/dist-packages/authentic2/utils.py" in make_url 271. url = resolve_url(to, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/django/shortcuts.py" in resolve_url 147. return reverse(to, args=args, kwargs=kwargs) File "/usr/lib/python2.7/dist-packages/django/urls/base.py" in reverse 91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) File "/usr/lib/python2.7/dist-packages/django/urls/resolvers.py" in _reverse_with_prefix 497. raise NoReverseMatch(msg) Exception Type: NoReverseMatch at /logout/ Exception Value: Reverse for '\"backend' not found. '\"backend' is not a valid view function or pattern name. Request information: USER: AnonymousUser GET: local = u'ok' next = u'\\"backend' POST: No POST data FILES: No FILES data COOKIES: No cookie data
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 5 ans
Même genre avec next=( :
NoReverseMatch at /logout/ Reverse for '(' not found. '(' is not a valid view function or pattern name. Request Method: GET Request URL: https://connexion-departement06.test.entrouvert.org/logout/?local=ok&next=(
Mis à jour par Thomas Noël il y a presque 5 ans
Et plus amusant :
Internal Server Error: /logout/ NoReverseMatch at /logout/ Reverse for 'amsterdam' not found. 'amsterdam' is not a valid view function or pattern name. Request Method: GET Request URL: https://connexion-departement06.test.entrouvert.org/logout/?local=ok&next=amsterdam
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-spring-cleaning-32934.patch 0001-spring-cleaning-32934.patch ajouté
- Fichier 0002-views-validates-logout-next-URL-33087.patch 0002-views-validates-logout-next-URL-33087.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
À appliquer après #32934.
Ce patch évite aussi d'utiliser utils.redirect() qui doit être réservé à un
usage interne, shortcuts.redirect() suffit pour un des URLs bruts.
Ça valide toutes les URLs next vis à vis de la whitelist dynamique, mais bon normalement personne n'est sensé appeler notre URL de logout à part authentic.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Copié depuis Bug #33086: crash sur mauvaise URL next lors du logout ajouté
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Fichier 0001-views-validates-logout-next-URL-33087.patch 0001-views-validates-logout-next-URL-33087.patch ajouté
Rebasé.
Mis à jour par Paul Marillonnet il y a presque 5 ans
La vue logout
perd la possibilité de choisir le garabit à rendre, alors qu'il est toujours présent dans la vue login
. Ça me plaît moyen d'avoir cette possibilité pour l'une de ces deux vues mais pas pour l'autre.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Paul Marillonnet a écrit :
La vue
logout
perd la possibilité de choisir le garabit à rendre, alors qu'il est toujours présent dans la vuelogin
. Ça me plaît moyen d'avoir cette possibilité pour l'une de ces deux vues mais pas pour l'autre.
On ne s'en sert pas, c'est du vieux code, la plupart des paramètres de vue sont inutiles, ça date de nos débuts en Django, j'essayais d'écrire les vues comme les vues générique des contribs django mais ça ne sert à rien.
Mis à jour par Paul Marillonnet il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Benjamin Dauvergne a écrit :
On ne s'en sert pas, c'est du vieux code
(Est-ce qu'on aurait pas intérêt à créer un ticket de nettoyage de ce vieux code ?)
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Paul Marillonnet a écrit :
Benjamin Dauvergne a écrit :
On ne s'en sert pas, c'est du vieux code
(Est-ce qu'on aurait pas intérêt à créer un ticket de nettoyage de ce vieux code ?)
Je préfère qu'on réécrive chaque vue progressivement.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 7be25fff6998b0db94c1d36e6454055bcc20dad8 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue May 14 16:56:14 2019 +0200 views: validates logout next URL (#33087)
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
views: validates logout next URL (#33087)