Le WordPress d'aujourd'hui, décodé pour les développeurs

Sécurité

Audit de vingt sites d’agence : les jetons d’agent IA jamais journalisés

Sur vingt sites d'un même portefeuille d'agence, la quasi-totalité des jetons attribués à des agents IA fonctionnaient sans laisser la moindre trace d'utilisation.

Par Clément Hadrot • 23 avril 2026 • 4 min de lecture • Aucun commentaire
Audit de vingt sites d'agence : les jetons d'agent IA jamais journalisés

Sur vingt sites d’un même portefeuille d’agence, connectés chacun à au moins un agent IA via un jeton d’application, la quasi-totalité de ces jetons ne produisaient absolument aucune trace d’utilisation exploitable au moment de l’audit. Les jetons fonctionnaient parfaitement — les appels aboutissaient, les actions s’exécutaient — mais rien nulle part ne permettait de reconstituer quand un agent avait agi, sur quelle donnée, ni avec quel résultat.

Ce constat, loin d’être isolé, révèle un écart fréquent entre la mise en place technique d’une intégration d’agent et la mise en place, distincte, d’une journalisation qui la rend auditable après coup. La première étape se fait presque toujours ; la seconde reste, dans une majorité de cas observés, oubliée ou reportée indéfiniment.

Ce que l’audit a cherché à vérifier

Pour chaque site du portefeuille, la méthode consistait à identifier les jetons d’application actifs via wp user application-password list, puis à vérifier, pour chacun, l’existence d’un mécanisme de journalisation associé à son usage : un journal d’activité dédié, une entrée dans les journaux serveur permettant de distinguer les appels de cet agent, ou à défaut une trace applicative quelconque liant une action constatée sur le site à ce jeton précis.

wp user application-password list --user=agent-ia-catalogue --format=table

Le résultat, catégorie par catégorie

  • Journal d’activité dédié spécifiquement aux appels de l’agent : quasi absent sur l’ensemble du portefeuille audité
  • Traces dans les journaux serveur suffisamment détaillées pour distinguer un appel d’agent d’un appel humain : présentes mais rarement exploitées activement
  • Toute forme de journalisation applicative liée au jeton : présente sur une minorité seulement des sites concernés
L'essentiel à retenir : Un jeton fonctionnel n'implique jamais qu'il soit journalisé ; L'absence de trace d'usage rend impossible toute reconstitution après incident ; La journalisation doit être vérifiée activement, pas seulement supposée activée

Pourquoi cet écart se creuse dans la pratique

La mise en place technique d’un agent (créer le compte, générer le jeton, configurer le serveur MCP ou la route REST) produit un résultat immédiatement visible : l’agent fonctionne. La mise en place d’une journalisation, en comparaison, ne produit aucun résultat visible tant qu’aucun incident ne survient : elle reste une dépense de temps sans retour immédiat perceptible pour l’équipe qui la néglige souvent sous la pression du calendrier.

Le coût réel de cette absence se révèle après coup

Sur l’un des sites audités, une action inattendue avait bien été constatée sur le catalogue produit quelques semaines auparavant : un champ de description modifié de façon incohérente sur plusieurs fiches. Sans journalisation associée au jeton de l’agent, impossible de déterminer si cette modification provenait d’un appel légitime mal calibré, d’une erreur de l’agent, ou d’un usage détourné du jeton par un tiers. La question est restée sans réponse définitive, faute de trace exploitable.

Une remédiation simple, appliquée sur l’ensemble du portefeuille

La correction retenue pour l’ensemble des vingt sites a consisté à ajouter un point d’accroche unique, sur le hook rest_api_init et sur l’action d’exécution des abilities selon l’implémentation utilisée, qui journalise systématiquement l’identifiant du jeton utilisé, l’action déclenchée et le résultat obtenu, dans une table dédiée distincte du journal d’activité humain.

add_action('rest_after_insert_action', function ($resultat, $request) {
    if (mon_plugin_est_jeton_agent(mon_plugin_jeton_courant())) {
        mon_plugin_journaliser_appel_agent(
            mon_plugin_jeton_courant(),
            $request->get_route(),
            $resultat
        );
    }
}, 10, 2);

Un jeton d’agent qui fonctionne sans laisser de trace n’est pas un jeton fiable : c’est un jeton dont on ne pourra jamais dire, après coup, ce qu’il a réellement fait.

Ce que cet audit n’a pas cherché à établir

Cet audit s’est volontairement limité à constater l’existence ou l’absence de journalisation ; la conception détaillée d’une architecture de journalisation adaptée à un volume élevé d’appels d’agent, avec sa politique de rétention et sa table dédiée, relève d’un travail distinct déjà traité par ailleurs. L’objectif ici était de mesurer, sur un échantillon réel, l’ampleur d’un problème encore trop souvent sous-estimé.

En résumé

Sur ce portefeuille de vingt sites, la journalisation des jetons d’agent IA restait l’exception plutôt que la règle, alors même que ces jetons fonctionnaient sans le moindre incident visible au quotidien. Cet écart entre fonctionnement et traçabilité ne se corrige pas automatiquement avec le temps : il demande une vérification active, site par site, et une remédiation systématique dès qu’un agent obtient un accès, même limité, à des données ou des actions sur un site en production.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi