0%
Formulaires et validation

Formulaires

Recevoir des données utilisateur sans jamais leur faire confiance.

15-20 min

Formulaires et validation

Un formulaire est l'endroit où une application cesse d'être en contrôle. Tout ce qui arrive par un POST est une chaîne de caractères produite par quelqu'un d'autre : un utilisateur pressé, un navigateur qui remplit automatiquement un champ, un script qui contourne la page. Le champ « année de parution » peut contenir 1985, mille neuf cent, un vide, ou trois cents caractères.

La question n'est donc pas de savoir si les données seront invalides, mais où l'application décide de le constater. Le réflexe naturel — vérifier au début de la méthode du contrôleur — produit un code qui empile les if, mélange règles métier et plomberie web, et duplique les mêmes vérifications à chaque endroit où l'objet est reçu. Au bout de quelques écrans, deux formulaires qui manipulent le même objet ne le valident plus de la même façon.

L'autre réflexe — se reposer sur la validation du navigateur, required et type="number" — est confortable et faux. Ces attributs améliorent l'expérience mais ne protègent rien : ils s'évaluent chez le client, qui peut les désactiver, et un curl bien formé les ignore entièrement. Une validation côté client est une commodité ; une validation côté serveur est une garantie.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !