Un cabinet d’avocats nous demande d’auditer une extension de génération de contenu par intelligence artificielle installée depuis quelques mois sur son site, après qu’un des associés a découvert par hasard, dans la documentation technique de l’extension consultée pour une autre raison, une mention indiquant que « le contenu est envoyé à notre service pour suggestion ». Le cabinet s’inquiète, à raison : ses rédacteurs utilisent régulièrement l’assistant intégré à l’éditeur pour reformuler des brouillons d’articles contenant parfois des éléments non encore publics, y compris des références à des dossiers en cours anonymisés de façon imparfaite.
L’audit confirme le problème structurel : à chaque utilisation de la fonction de suggestion, l’intégralité du contenu du champ concerné — pas seulement une sélection de texte, mais le brouillon entier de l’article en cours d’édition — est transmise à une API tierce, sans qu’aucune mention explicite n’apparaisse dans l’interface d’édition elle-même. Seule la documentation technique, publiée sur un site distinct et jamais consultée par les rédacteurs au quotidien, mentionnait ce transfert, en des termes assez généraux.
Ce que révèle le code de l’extension
// Extrait simplifié du code retrouvé dans l'extension
add_action( 'wp_ajax_moncpt_suggestion_ia', function() {
check_ajax_referer( 'moncpt_suggestion' );
$contenu_complet = wp_unslash( $_POST['contenu'] ?? '' );
$reponse = wp_remote_post( 'https://api.service-ia-externe.example/v1/suggest', array(
'body' => wp_json_encode( array( 'text' => $contenu_complet ) ),
'headers' => array( 'Content-Type' => 'application/json' ),
) );
wp_send_json_success( array(
'suggestion' => wp_remote_retrieve_body( $reponse ),
) );
} );
Le point d’entrée AJAX transmet $contenu_complet, c’est-à-dire tout le texte présent dans l’éditeur au moment de la demande, à un service externe dont le traitement des données (durée de conservation, localisation des serveurs, réutilisation éventuelle pour l’entraînement de modèles) n’est documenté nulle part dans l’interface WordPress elle-même. Aucune case à cocher, aucune notice, aucun message contextuel ne prévient l’utilisateur avant l’envoi.
Pourquoi un brouillon non publié constitue une donnée transmise à un tiers

Sur le plan de la protection des données, un brouillon d’article n’a pas un statut différent de n’importe quelle autre donnée traitée par le site dès lors qu’il contient des informations identifiantes ou confidentielles — ce qui était précisément le cas ici avec des références de dossiers, même partiellement anonymisées. Le Règlement général sur la protection des données impose, pour tout transfert de données vers un tiers, une information claire et préalable de la personne concernée, et le cas échéant son consentement explicite si le traitement ne repose sur aucune autre base légale valable.
Le fait que le transfert soit mentionné dans une documentation technique distincte, non intégrée au parcours réel de l’utilisateur au moment où l’action se produit, ne constitue pas une information suffisante au sens du RGPD : le principe de transparence exige que l’information soit accessible et compréhensible au moment pertinent, pas enfouie dans un document que personne n’a de raison de consulter avant d’utiliser une simple fonction de suggestion de texte.
Se pose également la question de la localisation des serveurs du service tiers : si celui-ci est situé hors de l’Union européenne, un transfert de données à caractère personnel implique des garanties supplémentaires (clauses contractuelles types, ou une décision d’adéquation), une vérification qui n’avait jamais été faite lors du choix initial de cette extension.
Ce que nous avons recommandé au client
- Désactiver immédiatement la fonctionnalité de suggestion IA le temps de clarifier la situation contractuelle avec l’éditeur de l’extension, plutôt que de continuer à transmettre des données en connaissance du problème.
- Demander à l’éditeur de l’extension sa politique exacte de traitement : durée de conservation des textes transmis, usage éventuel pour l’entraînement de modèles, localisation des serveurs — des informations qui doivent figurer dans un registre de traitement à jour, obligatoire pour toute structure traitant des données personnelles, cabinet d’avocats en tête.
- Ajouter, si la fonctionnalité est réactivée, un avertissement contextuel explicite avant chaque envoi, directement dans l’interface d’édition, plutôt que de se reposer sur une documentation externe :
add_action( 'admin_notices', function() {
$ecran = get_current_screen();
if ( $ecran && 'post' === $ecran->base ) {
echo '';
echo esc_html__(
'La suggestion assistée par IA transmet le contenu de ce brouillon à un service externe. Ne l\'utilisez pas sur des contenus confidentiels avant validation par le service juridique.',
'moncpt'
);
echo '
';
}
} );
Une vigilance à généraliser aux futures extensions IA
Ce cas n’est pas isolé : la multiplication rapide des extensions intégrant des fonctionnalités d’intelligence artificielle générative depuis le début de l’année a créé une vague d’intégrations où la question du traitement des données transmises n’est pas toujours au centre des préoccupations des développeurs, focalisés sur la fonctionnalité elle-même. Avant d’installer une telle extension sur un site traitant des données sensibles, la vérification du flux réel de données (via une simple inspection réseau du navigateur pendant l’utilisation de la fonctionnalité) devrait précéder toute décision, plutôt que de se fier à la seule description marketing de l’extension.
Sur ce dossier, la remarque la plus frappante du client est restée : « personne ne nous a demandé notre avis avant que nos brouillons partent ailleurs ». C’est exactement le problème que le RGPD est censé prévenir, et exactement ce qu’une notice contextuelle simple aurait suffi à corriger.
En résumé
Cet audit ne traite pas des risques d’injection de prompt dans les extensions d’intelligence artificielle, une catégorie de vulnérabilité technique distincte abordée séparément. Il porte sur un manquement plus fondamental et plus fréquent : l’absence totale de transparence sur un transfert de données qui aurait pu, avec quelques lignes de code et une notice claire, rester parfaitement conforme.