Projet

Général

Profil

Development #59027

renforcer l'accès par code de suivi/accès : demander des infos du formulaire cible

Ajouté par Thomas Noël il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
25 novembre 2021
Echéance:
28 février 2022
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Publik - Development #58837: Sécurité du code de suivi/d'accèsFermé01 mai 2022

Actions
Lié à w.c.s. - Development #62878: renforcer l'accès par code de suivi : sensibilité à la casseFermé17 mars 2022

Actions
Lié à w.c.s. - Bug #62879: renforcer l'accès par code de suivi : ne fonctionne pas avec un champ dateFermé17 mars 2022

Actions

Révisions associées

Révision fc8e3458 (diff)
Ajouté par Thomas Noël il y a environ 2 ans

misc: add fields verification after tracking code (#59027)

Historique

#1

Mis à jour par Thomas Noël il y a plus de 2 ans

#2

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Description mis à jour (diff)
#4

Mis à jour par Thomas Noël il y a plus de 2 ans

  • Echéance mis à 28 février 2022
#5

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
#6

Mis à jour par Thomas Noël il y a environ 2 ans

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.
#7

Mis à jour par Thomas Noël il y a environ 2 ans

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
#8

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.

#9

Mis à jour par Thomas Noël il y a environ 2 ans

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.

#10

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é).

#11

Mis à jour par Thomas Noël il y a environ 2 ans

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.

#12

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.

#14

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.

#15

Mis à jour par Thomas Noël il y a environ 2 ans

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.

#16

Mis à jour par Emmanuel Cazenave il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée

Ça fait le taf.

#17

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)

#18

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#19

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é
#20

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é
#22

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF