Development #59027
renforcer l'accès par code de suivi/accès : demander des infos du formulaire cible
0%
Description
Après saisie d'un code de suivi, si l'accès est "renforcé", au lieu d'arriver directement sur la demande, on arriverait sur une page intermédiaire qui demande à l'usager d'indiquer le contenu de quelques champs de la demande cible. L'accès est donné uniquement si ces champs sont bien ceux de la demande.
La configuration se ferait sur le formulaire, dans la popup « Code de suivi » :
Code de suivi Activer la gestion des codes de suivi [ ] Champs à ressaisir pour valider l'accès par code de suivi [ nom v ] [ date de naissance v ] [ v ] Durée de vie des brouillons (en jours) ...
Pour simplifier l'UI, on limite à 3 champs. On présenterait donc juste 3 listes. NB : on ne listerait que certains types de champs : texte (ligne), courriel et date.
(la comparaison serait relativement souple (unaccent+lower) afin de simplifier la saisie des noms...)
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 2 ans
- Lié à Development #58837: Sécurité du code de suivi/d'accès ajouté
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Description mis à jour (diff)
- Privée changé de Oui à Non
Mis à jour par Thomas Noël il y a environ 2 ans
- Fichier 0001-misc-add-fields-verification-after-tracking-code-590.patch 0001-misc-add-fields-verification-after-tracking-code-590.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Draft pour premier avis...
Je pense appeler ces champs « Champs à vérifier après saisie du code » dans la popup de configuration. Traduction en anglais bienvenue !
Sur la page présentée à l'usager, j'imagine un titre et un petit texte, là aussi avis et traductions bienvenues :- Titre : Vérification de vos droits d'accès
- Texte : Vous devez indiquer les informations suivantes contenues dans la demande afin de pouvoir y accéder.
Mis à jour par Thomas Noël il y a environ 2 ans
- Fichier 0001-misc-add-fields-verification-after-tracking-code-590.patch 0001-misc-add-fields-verification-after-tracking-code-590.patch ajouté
Pas encore de tests mais le code est là ; si quelqu'un peut valider le principe. Ça me semble simple et efficace ainsi.
(Les phrases en anglais sortent d'un poisson de Babel...)
Par rapport au cahier des charges de la description :- on peut mettre autant de champ de vérification que voulu
- la comparaison est stricte : si le formulaire contient Noël il faut exactement saisir Noël
- seuls les champs de type texte (ligne), courriel et date sont utilisables
Mis à jour par Thomas Noël il y a environ 2 ans
A noter que j'aurais voulu que le widget de choix des champs ne s'affiche pas quand on ne coche pas l'option "code de suivi", mais le système data-dynamic-* ne semble pas compatible avec les CheckboxWidget.
Mis à jour par Thomas Noël il y a environ 2 ans
- Fichier 0001-misc-add-fields-verification-after-tracking-code-590.patch 0001-misc-add-fields-verification-after-tracking-code-590.patch ajouté
- Statut changé de En cours à Solution proposée
Voilà, avec les tests.
A noter, lors des tests, rencontre d'un cas : on a un brouillon dont un champ de vérification n'est pas encore rempli, que faire ? Mon choix dans ce code : sur l'accès à un brouillon, on demande la vérification uniquement des champs qui ne sont pas vides. Si deux champs doivent être validés mais qu'un seul est renseigné dans le brouillon, le formulaire de vérification ne demandera que ce seul champ.
Mis à jour par Frédéric Péters il y a environ 2 ans
Tu peux ajouter un test export/import ?
Aussi, la limitation à texte/date/email s'applique aux types de base, i.e. on ne peut pas vérifier un champ texte qui serait dans un bloc. Que ça soit clair pour tout le monde. (je pointerai vers ce commentaire dans 6 mois quand ça sera demandé).
Mis à jour par Thomas Noël il y a environ 2 ans
- Fichier 0001-misc-add-fields-verification-after-tracking-code-590.patch 0001-misc-add-fields-verification-after-tracking-code-590.patch ajouté
Frédéric Péters a écrit :
Tu peux ajouter un test export/import ?
Bien vu, ça plantouillait, surtout en XML, corrigé par cette nouvelle version.
Aussi, la limitation à texte/date/email s'applique aux types de base, i.e. on ne peut pas vérifier un champ texte qui serait dans un bloc. Que ça soit clair pour tout le monde. (je pointerai vers ce commentaire dans 6 mois quand ça sera demandé).
Oui, ça compliquerait quand même sérieusement le code. Je reste avec cette limitation ici, on en reparle dans 6 mois.
Mis à jour par Emmanuel Cazenave il y a environ 2 ans
- Assigné à mis à Thomas Noël
Je voulais tester mais branche trop "vieille", ça nécessite rebase et résolution de conflit.
Mis à jour par Thomas Noël il y a environ 2 ans
Mis à jour par Emmanuel Cazenave il y a environ 2 ans
J'ai testé ça fonctionne.
Ergonomie : je tape volontairement une connerie dans un des champs et je tombe sur une page "accès interdit" qui me propose un lien pour retourner vers la page d'accueil : je m'attendais à revenir sur la page où je rentre les valeurs pour les champs, sur l'idée que les fautes de frappe etc se produiront et que je voudrais pouvoir corriger ma bourde rapidos, la je dois re-rentrer le code de suivi.
Ça peut aussi se faire dans un autre ticket.
Mis à jour par Thomas Noël il y a environ 2 ans
- Fichier 0001-misc-add-fields-verification-after-tracking-code-590.patch 0001-misc-add-fields-verification-after-tracking-code-590.patch ajouté
Emmanuel Cazenave a écrit :
Ergonomie : je tape volontairement une connerie dans un des champs et je tombe sur une page "accès interdit" qui me propose un lien pour retourner vers la page d'accueil : je m'attendais à revenir sur la page où je rentre les valeurs pour les champs, sur l'idée que les fautes de frappe etc se produiront et que je voudrais pouvoir corriger ma bourde rapidos, la je dois re-rentrer le code de suivi.
En fait je voulais éviter qu'un plaisantin joue une attaque par force brute, mais cette vue est déjà protégée par un rate-limit donc tout va bien. J'ai fait ici comme tu proposes, ça sera moins brutal. A noter que quand même, pour ne pas aider un attaquant, l'erreur ne dit pas quel champ est erroné mais juste qu'il y a quelque chose qui ne va pas.
Mis à jour par Emmanuel Cazenave il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
Ça fait le taf.
Mis à jour par Thomas Noël il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit fc8e3458a99c78ad1d7c396b40d89df855a9b74c Author: Thomas NOËL <tnoel@entrouvert.com> Date: Wed Feb 23 01:23:21 2022 +0100 misc: add fields verification after tracking code (#59027)
Mis à jour par Transition automatique il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Marie Kuntz il y a environ 2 ans
- Lié à Development #62878: renforcer l'accès par code de suivi : sensibilité à la casse ajouté
Mis à jour par Marie Kuntz il y a environ 2 ans
- Lié à Bug #62879: renforcer l'accès par code de suivi : ne fonctionne pas avec un champ date ajouté
misc: add fields verification after tracking code (#59027)