Symptômes · 8 min · publié le 4 novembre 2026 · mis à jour le 30 décembre 2026

Formulaire de prise de rendez-vous détourné

Les demandes de rendez-vous partent vers une autre boîte, ou un script copie les champs. Fréquent chez médecins, artisans, garages. On vérifie l’action du formulaire, le SMTP, les notifications — pas seulement la home.

Réponse directe

Les demandes partent vers une autre boîte, ou un JS copie les champs. Vérifiez l'action du form, le SMTP, les notifications. Fréquent chez médecins, artisans, garages.

formulaire rdv piraté prise rendez-vous hack formulaire artisan malware

Ce que le patient / le client voit encore

Le formulaire a l’air du vôtre. Le message « merci, nous vous recontactons » s’affiche. Vous, vous n’avez rien dans la boîte. Ou vous avez les messages, et un inconnu aussi. Le site n’est pas « down ». Le métier l’est.

Médecins, kinés, artisans, garages, auto-écoles : le RDV est le chiffre. L’attaquant n’a pas besoin d’un kit bancaire. Une adresse de notification changée suffit. Parfois c’est plus sale : un JS qui envoie une copie vers un Google Form ou un mail tiers.

Ne vous fiez pas à un test depuis l’admin (prévisualisation Elementor). Envoyez un vrai RDV test depuis le téléphone, comme un inconnu. Notez l’heure. C’est le début du constat. Un second test le lendemain, même créneau : si le To: a bougé, l’accès est encore ouvert.

  • Boîte habituelle : rien / tout / trop.
  • Boîte perso du gérant : des demandes « bizarres » en copie.
  • Patients qui disent « j’ai envoyé, personne n’a rappelé ».

Trois détournements fréquents

1) L’email de notification du plugin (Contact Form 7, Gravity, Forminator, module Doctolib-like maison) a été changé en base ou dans l’admin. 2) Le SMTP du site (Brevo, mail() hébergeur) envoie encore, mais le To: n’est plus vous — ou une règle de transfert a été ajoutée sur la boîte (règles de transfert si vous l’avez). 3) Le front n’utilise plus votre form : iframe ou action vers un domaine tiers.

Les trois se cumulent. On les teste dans cet ordre : HTML de la page, réglages du plugin, SMTP, boîte.

Un quatrième : la page RDV est une fausse iframe (Calendly, Zenchef, Doctolib widget). Même famille visuelle, autre URL.

L’action du form : HTML, plugin, iframe

Vue source, déconnecté : `action=`, iframe `src=`. Si ce n’est pas votre domaine ou votre prestataire habituel, coupez la page (maintenance sur cette URL) et ne « corrigez » pas en remettant un shortcode par-dessus un iframe pirate.

Constructeurs : le form est dans un JSON. Comparez à une sauvegarde. Un extra Elementor globale peut injecter un second form invisible.

Doctolib / Mondossi / planing tiers : vérifiez dans leur console que le widget est toujours le vôtre. Un attaquant ne « pirate » pas toujours Doctolib ; il remplace le morceau chez vous.

SMTP et adresses de notification

WP Mail SMTP, Fluent, le SMTP de l’hébergeur : destinataires, BCC caché. Un BCC vers une boîte jetable est le vol discret. Relisez tous les forms (contact, devis, RDV, rappel).

Le From: `wordpress@` ou `contact@` peut aussi avoir servi à du spam — autre dossier (expéditeur). Ici : le To: des notifications.

Si plus aucun mail ne part, l’hébergeur a pu limiter l’envoi après un spam. Les RDV tombent dans le vide. Journaux d’envoi : les demander.

JavaScript qui copie les champs

Un listener sur submit qui POSTe ailleurs : visible dans le thème, un plugin, GTM, un fichier dans uploads. Vous le voyez parce que le réseau du navigateur (F12) montre une requête vers un domaine inconnu au moment de l’envoi. C’est un constat, pas un exploit à reproduire en masse.

Hotjar / Clarity ajoutés par l’attaquant enregistrent aussi des saisies. Audit des tags après le form.

Coupez le JS, puis le form natif. Un form « propre » avec le listener encore là continue de fuir.

Données de santé (motifs de consult’) : le guide fuite et un conseil juridique. Pas un tweet.

Preuves : boîte, journaux, copies

Captures du HTML, du réglage To:, d’un envoi test horodaté. Copie du site. Journaux mail. La boîte pirate, vous ne l’aurez pas ; votre constat suffit à dater.

Patients déjà partis : ne les rappelez pas depuis une adresse improvisée qui ressemble à du phishing. Téléphone du cabinet, message habituel.

Panel et admin : mots de passe. Un To: remis à 3 h du matin reviendra si l’accès reste.

Remettre un canal de prise de RDV

Court terme : téléphone + bandeau, ou un lien Doctolib / Calendly vérifié depuis leur console (pas depuis le HTML actuel). La page form du site : maintenance ou 503 ciblée, pas un 301 vers la home si elle a servi de phishing (410 si kit).

Moyen terme : form relu, SMTP authentifié, destinataires documentés, moins de plugins de form (un seul). Tests hebdo : un faux RDV.

Google Business : bouton RDV. S’il pointe vers la page sale, changez temporairement — URL de fiche.

Après : moins de plugins, une phrase au standard

Le standard (secrétaire, associé) a une phrase : « le formulaire web a été coupé, rappelez-nous, ignorez tout SMS de « confirmer votre carte » ». Les cabinets se font avoir sur la comm plus que sur le PHP.

Créer un espace si le JS et le SMTP s’entremêlent. Guide WordPress si c’est un CF7 + thème nulled.

Trente jours : To: encore le vôtre, pas de BCC, un envoi test. Search Console si un kit a été posé à côté du form.

Cas fréquent : CF7 To: changé, BCC jetable, home propre, 40 patients « j’ai envoyé le formulaire » le lundi.

Questions fréquentes

Le formulaire envoie un mail « ça marche » quand je le teste. C’est bon ?

+
Testez déconnecté, depuis un autre réseau, et regardez tous les destinataires (en-têtes, BCC). Un test admin peut court-circuiter le form public ou un JS conditionnel.

Dois-je prévenir les patients ?

+
Si des motifs de santé ou des identifiants ont pu partir ailleurs, le constat RGPD s’applique — conseil adapté aux professions de santé. Un simple To: changé avec des demandes « dispo mardi » : au minimum, les recontacter par téléphone pour replanifier, sans détail technique.

Doctolib a-t-il été piraté ?

+
Le plus souvent, non : c’est votre page qui n’embarque plus le bon widget. Vérifiez dans votre compte Doctolib. Si leur statut incident dit autre chose, suivez-les.

Un plugin de form « sécurité » aurait-il empêché ça ?

+
Un captcha réduit le spam, pas un admin qui change le To: ni un JS dans le thème. Mots de passe et moins d’admins, d’abord.

Les demandes sont dans le spam Orange. C’est un détournement ?

+
Pas forcément : FAI français après un envoi sale. Vérifiez quand même le To: et le JS. Les deux existent.
À lire ensuite
Iframe de réservation Guide WordPress Fuite de données Journal d’envoi Fiche Google URL Déclarer mon site