Sécurité des formulaires

Lors de la mise en place d’un formulaire sur son site, il est bien souvent indispensable de trouver des méthodes de sécurisation pour éviter le piratage des données envoyées par l’utilisateur ou de subir une attaque de son propre système d’information.

Formulaire gérant des données sensibles

Les données sensibles concernent des données à caractère financier, juridique ou personnel. Dans ce cas, l’utilisateur doit pouvoir :

  • vérifier et corriger les données avant la validation d’un formulaire en plusieurs étapes ;
  • modifier ou annuler les données et les actions effectuées sur ces données après la validation du formulaire.

En cas de modification ou de suppression de ces données, l’utilisateur doit :

  • pouvoir récupérer ses données supprimées ou modifiées ;
  • se voir proposer une demande de confirmation explicite de la suppression ou de la modification des données.

Système de sécurisation des formulaires

Les systèmes de sécurisation seront annoncés avant leur implémentation dans le formulaire. Exemple « La question suivante permet de nous assurer que vous êtes un être humain.».

Captcha

Un captcha (Completely Automated Public Turing-test to tell Computers and Humans Apart) est un système de sécurité, le plus souvent visuel, visant à différencier un être humain d’un robot. L’inconvénient est qu’il n’est le plus souvent pas accessible aux personnes porteuses de handicap.
En cas d’implémentation d’un captcha, il faudra donc prévoir :

  • un système de rafraîchissement du contenu dans le cas où le captcha qui s’affiche à l’écran n’est pas compréhensible pour l’utilisateur ;
  • une alternative sonore en cas de captcha visuel ;
  • une autre façon de renseigner un test de sécurité (test autre que le captcha) ;
  • un moyen de contact autre en cas d’impossibilité à renseigner le captcha.

Tests logiques

Il est possible de recourir à des tests logiques pour sécuriser son formulaire comme :

  • une question mathématique simple. Exemple : Combien font 10 + 2 ? ;
  • une question textuelle simple. Exemple : Quel animal aboie ? ;
  • une consigne textuelle simple. Exemple : Merci de recopier le mot « Bureau » ;
  • une confirmation via des cases à cocher. Exemple : Êtes-vous un être humain ?

Exemple

Visuel
Dans l’exemple qui suit, on a volontairement écrit un mot avec une lettre majuscule et des accents.

Question de sécurité

Cette question permet de nous assurer que vous êtes bien un être humain.

Dans l'exemple suivant, on a volontairement mis le mot « non » en premier, un robot ira en effet cocher le premier item (qui n'est pas le bon). De même, la question est posée à la forme positive pour être comprise par les personnes ayant des difficultés de compréhension ; les question à la forme négative étant toujours plus difficile à comprendre.

Question de sécurité

Êtes-vous un être humain ?

Code HTML

<label for="bur">Merci de recopier le mot « Bureau »</label>
<input type="text" id="bur" name="bur" pattern="Bureau" required>

<p>Êtes-vous un être humain ?</p>
  <ul>
    <li>
      <input type="radio" id="non" value="non" name="hum" required>
      <label for="non">Non</label>
    </li>
    <li>
      <input type="radio" id="oui" value="oui" name="hum" required>
      <label for="oui">Oui</label>
    </li>
  </ul>

Comme pour les captcha, il faudra prévoir :

  • un système de rafraîchissement du contenu dans le cas où le test qui s’affiche à l’écran n’est pas compréhensible pour l’utilisateur ;
  • une autre façon de renseigner le test de sécurité ;
  • un moyen de contact autre en cas d’impossibilité à renseigner le test.