Combien de points de contrôle faut-il vraiment vérifier avant d’ouvrir un module de réservation en ligne à ses clients ? Sept, pas plus, mais chacun mérite d’être traité sérieusement. Un restaurateur qui ajoute un système de réservation à son site WordPress se retrouve, souvent sans le savoir, à gérer un formulaire public collectant des noms, des numéros de téléphone, parfois des allergies alimentaires, et à exposer une nouvelle surface d’attaque.
Cette checklist ne couvre volontairement pas l’hébergement du site (choix du serveur, certificat SSL, sauvegardes générales), traité ailleurs de façon approfondie. Elle se concentre sur ce qui est propre au module de réservation lui-même, au moment précis où il passe en production.
Premier point : qui peut voir les réservations des autres clients
De nombreux plugins de réservation génèrent une page de confirmation accessible par une URL contenant un identifiant simple, du type ?reservation_id=142. Si cet identifiant est prévisible et que la page ne vérifie pas que le visiteur est bien celui qui a fait la réservation, n’importe qui peut consulter les coordonnées d’un autre client en modifiant le chiffre dans l’URL. Le test est rapide : créer deux réservations de test et vérifier que l’une ne permet jamais d’accéder aux informations de l’autre.
Deuxième point : la validation du nombre de couverts et des créneaux côté serveur

Un formulaire de réservation limite en général le nombre de convives et les horaires disponibles via des menus déroulants en JavaScript. Cette limite est cosmétique : rien n’empêche une requête forgée d’envoyer un nombre de couverts absurde ou un créneau fermé. La vérification doit être répétée côté serveur, dans le traitement PHP qui reçoit le formulaire :
- Le nombre de convives est borné à une plage raisonnable (par exemple 1 à 20).
- Le créneau demandé existe réellement dans les disponibilités du jour.
- Le service correspondant (midi, soir) n’est pas complet au moment de l’enregistrement.
Troisième point : les champs libres et les injections
Le champ « commentaire » ou « allergies » est souvent un champ texte libre. Il doit être traité avec sanitize_textarea_field() à la réception et affiché avec esc_html() partout où il ressort, notamment dans l’interface d’administration où le personnel de salle le consulte.
Quatrième point : la protection contre les faux formulaires automatisés
Sans validation particulière, un formulaire de réservation public devient une cible facile pour des soumissions automatisées qui n’ont rien à voir avec une vraie intention de réserver. Un nonce WordPress (wp_nonce_field() et wp_verify_nonce()) associé à un champ honeypot invisible filtre déjà une bonne partie du bruit, sans imposer de CAPTCHA agressif aux vrais clients.
Cinquième point : la conservation des données après le repas
Une fois la réservation honorée, les coordonnées du client n’ont plus de raison de rester indéfiniment accessibles en clair dans l’administration. Une purge ou une anonymisation après une durée définie (par exemple douze mois) limite l’exposition en cas de compromission ultérieure du site.
Sixième point : qui, dans l’équipe, peut modifier une réservation
Si plusieurs membres du personnel ont accès à l’administration WordPress, il faut vérifier que le rôle attribué correspond réellement à ce dont ils ont besoin : consulter les réservations du jour ne nécessite pas les droits d’un administrateur capable de modifier le thème ou d’installer des extensions.
Septième point : le message envoyé en cas d’erreur
Un message d’erreur trop verbeux (« la requête SQL a échoué : table wp_reservations introuvable ») donne des indices exploitables à quiconque teste le formulaire de façon malveillante. Un message générique côté client, avec le détail technique consigné uniquement dans les journaux serveur, referme cette porte.
Une checklist de sécurité vaut surtout par sa rigueur d’exécution : sept points vérifiés sérieusement valent mieux que vingt points cochés à la va-vite.
En résumé
Un module de réservation en ligne n’est jamais un simple formulaire de contact amélioré : il manipule des données personnelles et des créneaux qui ont une valeur commerciale directe. Passer ces sept points avant l’ouverture évite l’essentiel des mauvaises surprises, et prend rarement plus d’une heure une fois la méthode connue.