15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
21.10.2024
1 +1

Trackbacks et Pingbacks dans WordPress : Ce qu’ils sont, comment ils fonctionnent et si vous devriez les utiliser

Trackbacks et pingbacks sont des protocoles de notification inter-blog WordPress qui alertent automatiquement ou manuellement un site web référencé lorsqu’un autre site crée un lien vers son contenu. Un pingback est entièrement automatisé — WordPress l’envoie et le vérifie sans aucune intervention de l’utilisateur. Un trackback est semi-manuel — l’auteur doit fournir l’URL du point de terminaison trackback du blog cible, et la notification contient un court extrait de l’article lié.

Ces deux mécanismes ont été conçus pour créer une couche de conversation décentralisée à travers la blogosphère des débuts. En pratique, les deux sont devenus des vecteurs principaux de spam de commentaires, et la plupart des sites WordPress en production les désactivent entièrement. Comprendre exactement comment fonctionne chaque protocole — et les implications spécifiques en matière de sécurité et de SEO liées à leur activation — est essentiel avant de prendre cette décision.

L’architecture technique derrière chaque protocole

Comment fonctionnent les trackbacks en coulisses

Un trackback est une requête HTTP POST envoyée à une URL de trackback spécifique exposée par le blog cible. La charge utile est un corps encodé en formulaire simple contenant quatre champs : title, url, blog_name et excerpt. Le serveur récepteur analyse ces champs et, s’ils sont approuvés, affiche l’extrait comme une entrée similaire à un commentaire sur l’article référencé.

Le protocole ne comporte aucune étape de vérification intégrée. Le serveur émetteur ne fait aucune affirmation cryptographique sur le contenu de l’article lié, et le serveur récepteur n’a aucun moyen fiable de confirmer que le lien existe réellement. Cette faille architecturale est la cause principale du spam de trackback : n’importe quel script peut envoyer des données falsifiées à un point de terminaison trackback sans jamais publier de vrai lien.

Un POST de trackback brut ressemble à ceci :

curl -X POST https://example.com/wp-trackback.php?p=42 
  -d "title=My+Post+Title" 
  -d "url=https://attacker.com/fake-post" 
  -d "blog_name=Legitimate+Looking+Blog" 
  -d "excerpt=This+is+a+fabricated+excerpt."

En l’absence de handshake, le serveur récepteur ne peut pas distinguer cela d’une notification légitime.

Comment fonctionnent les pingbacks en coulisses

Les pingbacks utilisent XML-RPC comme couche de transport, spécifiquement la méthode pingback.ping définie dans la spécification Pingback 1.0. Lorsque vous publiez un article contenant un lien externe, WordPress appelle pingback.ping sur le serveur cible, en passant deux arguments : l’URL de votre article (source) et l’URL de la page liée (cible).

Le serveur récepteur effectue ensuite une étape critique que les trackbacks ignorent entièrement : il récupère l’URL source et confirme que le lien vers la cible existe réellement dans le HTML de la page. Ce n’est qu’après cette vérification qu’il enregistre le pingback.

<?xml version="1.0"?>
<methodCall>
  <methodName>pingback.ping</methodName>
  <params>
    <param><value><string>https://yoursite.com/your-post/</string></value></param>
    <param><value><string>https://targetsite.com/their-post/</string></value></param>
  </params>
</methodCall>

Cette vérification rend les pingbacks plus difficiles à falsifier que les trackbacks, mais elle introduit une vulnérabilité différente : la falsification de requête côté serveur (SSRF). Un attaquant peut créer un pingback qui force le serveur cible à récupérer une URL interne arbitraire — y compris http://127.0.0.1/wp-admin/ ou des points de terminaison de métadonnées cloud comme http://169.254.169.254/ — utilisant ainsi la pile XML-RPC de WordPress comme proxy.

Trackbacks vs. Pingbacks : comparaison côte à côte

FonctionnalitéTrackbackPingback
InitiationManuelle (l’auteur colle l’URL du point de terminaison)Automatique (déclenchée à la publication)
Protocole de transportHTTP POST (encodé en formulaire)XML-RPC (`pingback.ping`)
Vérification du lienAucuneOui — le serveur récupère l’URL source
Contient un extraitOuiNon (lien uniquement)
Résistance au spamTrès faibleFaible (risque SSRF à la place)
Les deux sites doivent le prendre en chargeNonOui
Encore largement utiliséNonRarement
Risque de sécurité principalInjection de contenu falsifiéAmplification SSRF / DDoS

Comment activer ou désactiver les trackbacks et pingbacks dans WordPress

Paramètre global via le tableau de bord

La façon la plus rapide de contrôler les deux protocoles à l’échelle du site est via les paramètres de discussion de WordPress :

  1. Connectez-vous à votre panneau d’administration WordPress.
  2. Accédez à Réglages > Discussion.
  3. Sous Réglages par défaut des articles, repérez la case à cocher intitulée « Autoriser les notifications de liens provenant d’autres blogs (pingbacks et trackbacks) ».
  4. Décochez-la pour désactiver les deux protocoles globalement, puis cliquez sur Enregistrer les modifications.

Ce paramètre s’applique uniquement aux articles créés après la modification. Il ne désactive pas rétroactivement les pingbacks et trackbacks sur les articles existants.

Contrôle par article

Pour gérer les notifications sur un article spécifique :

  1. Ouvrez l’article dans l’éditeur de blocs.
  2. Dans la barre latérale droite, faites défiler jusqu’au panneau Discussion. S’il n’est pas visible, ouvrez Options de l’écran (coin supérieur droit) et activez la case à cocher Discussion.
  3. Décochez Autoriser les pingbacks & trackbacks.
  4. Mettez à jour ou publiez l’article.

Désactivation en masse sur tous les articles existants via SQL

Si votre site comporte des milliers d’articles existants, l’approche par le tableau de bord est peu pratique. Exécutez la requête suivante directement sur votre base de données WordPress — effectuez toujours une sauvegarde au préalable :

UPDATE wp_posts
SET ping_status = 'closed'
WHERE post_status = 'publish'
  AND post_type = 'post';

Remplacez wp_ par votre préfixe de table réel s’il est différent. Cela ferme le statut ping sur chaque article publié en une seule opération.

Blocage du point de terminaison XML-RPC au niveau du serveur

La désactivation des pingbacks dans les paramètres WordPress laisse toujours le point de terminaison xmlrpc.php accessible. Pour une protection complète, bloquez-le au niveau du serveur web.

Apache — ajoutez à .htaccess ou à la configuration de votre hôte virtuel :

<Files xmlrpc.php>
  Order Deny,Allow
  Deny from all
</Files>

Nginx — ajoutez à l’intérieur de votre bloc server {} :

location = /xmlrpc.php {
    deny all;
    return 403;
}

Le blocage de xmlrpc.php neutralise également le vecteur d’attaque d’amplification DDoS basé sur XML-RPC, où des attaquants envoient des milliers de requêtes pingback à un site WordPress, chacune provoquant des requêtes HTTP sortantes du serveur — transformant ainsi votre serveur en participant involontaire d’une attaque distribuée.

Si vous exécutez WordPress sur un plan d’Hébergement VPS, vous disposez d’un accès root complet pour implémenter ces règles au niveau du serveur directement. Les environnements partagés peuvent nécessiter .htaccess ou un plugin de sécurité à la place.

Risques de sécurité à ne pas ignorer

Amplification DDoS basée sur les pingbacks

Étant donné que pingback.ping amène le serveur récepteur à effectuer une requête HTTP sortante, un botnet peut envoyer des dizaines de milliers de requêtes pingback à un site WordPress vulnérable, chacune lui demandant de récupérer l’URL d’une victime. Le serveur WordPress devient un amplificateur. Ce schéma d’attaque a été largement documenté dans la nature dès 2014 et reste pertinent partout où xmlrpc.php est exposé.

SSRF via pingback

Sur les installations WordPress hébergées dans le cloud — y compris celles fonctionnant sur des Hébergements VPS ou des Serveurs Dédiés — un attaquant peut soumettre un pingback où l’URL source pointe vers une adresse réseau interne. Si le serveur n’est pas protégé par un pare-feu au niveau de l’hyperviseur ou du VPC, la requête de vérification du pingback peut atteindre :

  • http://127.0.0.1/wp-admin/ — sondage des interfaces d’administration internes
  • http://169.254.169.254/latest/meta-data/ — métadonnées d’instance AWS EC2
  • Les points de terminaison internes de base de données ou de cache

L’atténuation de ce risque nécessite à la fois de bloquer xmlrpc.php et de s’assurer que les règles de pare-feu sortant de votre serveur empêchent les requêtes vers les plages d’adresses RFC 1918 et link-local.

Spam de trackback et pollution des commentaires

Étant donné que les trackbacks ne comportent aucune vérification, ils sont trivialement détournés. Une seule campagne de spam peut injecter des centaines de faux trackbacks dans votre file de modération de commentaires, chacun liant vers des sites de distribution de malwares, du spam pharmaceutique ou des pages de phishing. Même avec la modération activée, le volume peut submerger les administrateurs du site et dégrader le rapport signal/bruit des commentaires légitimes.

La réalité SEO des trackbacks et pingbacks en 2024

Lorsque ces protocoles ont été conçus au début des années 2000, tout backlink portait un signal PageRank significatif. L’algorithme de Google a considérablement évolué depuis lors. Plusieurs réalités s’appliquent désormais :

  • Les pingbacks auto-référentiels (WordPress pingant ses propres liens internes) génèrent des liens de commentaires tagués nofollow qui n’ont aucune valeur PageRank.
  • Les liens de trackback apparaissant dans les sections de commentaires sont presque universellement nofollow dans les thèmes WordPress modernes, ce qui signifie qu’ils ne transmettent aucune équité de lien.
  • Les trackbacks générés par spam, s’ils sont approuvés accidentellement, peuvent associer votre domaine à des sites de faible qualité ou pénalisés — un effet net négatif pour votre profil d’autorité.
  • Le système SpamBrain de Google est efficace pour identifier et dévaluer les schémas de liens provenant des sections de commentaires, y compris les liens générés par trackback.

La valeur SEO pratique de l’activation de l’un ou l’autre protocole est effectivement nulle pour la plupart des sites. Le risque de contamination par spam et d’exposition aux failles de sécurité, lui, ne l’est pas.

Quand les trackbacks et pingbacks ont encore un usage légitime

Il existe des scénarios limités où ces fonctionnalités conservent de la valeur :

  • Les réseaux de blogs fermés et privés (intranets, plateformes de publication académique) où tous les sites participants sont de confiance et le spam n’est pas une préoccupation.
  • Les intégrations CMS héritées où une plateforme partenaire ne prend en charge que le pingback comme mécanisme de notification et où une alternative webhook moderne n’est pas disponible.
  • Le débogage et la recherche sur les protocoles — comprendre le fonctionnement du flux de pingback XML-RPC est utile lors de l’audit des configurations de sécurité WordPress.

En dehors de ces contextes, les fonctionnalités doivent être désactivées.

Paramètres de discussion WordPress et meilleures pratiques de modération des commentaires

Si vous choisissez de laisser les pingbacks activés — par exemple, pour suivre quand d’autres sites de confiance dans votre réseau font référence à votre contenu — mettez en œuvre ces contrôles :

  • Activez la modération des commentaires afin qu’aucun pingback n’apparaisse publiquement sans approbation manuelle (Réglages > Discussion > Avant qu’un commentaire apparaisse > Le commentaire doit être approuvé manuellement).
  • Ajoutez les domaines de spam connus à la liste des Mots-clés de commentaires non autorisés sous Réglages > Discussion.
  • Installez un plugin de filtrage du spam (Akismet est le plus largement déployé) pour signaler automatiquement le spam de trackback et pingback avant qu’il n’atteigne votre file de modération.
  • Auditez régulièrement votre file de commentaires. Les trackbacks spam approuvés sont plus difficiles à nettoyer rétroactivement que ceux qui ont été bloqués.

Pour les sites fonctionnant dans des environnements WordPress gérés ou sur des VPS avec cPanel, les règles ModSecurity de cPanel peuvent ajouter une couche supplémentaire de filtrage contre les requêtes XML-RPC malformées avant qu’elles n’atteignent la couche applicative WordPress.

Matrice de décision pratique

Utilisez cette liste de contrôle pour déterminer la bonne configuration pour votre site :

Désactivez les trackbacks et pingbacks si :

  • Votre site est accessible publiquement et reçoit un certain volume de trafic organique
  • Vous n’avez pas de flux de travail dédié à la modération des commentaires
  • Vous exécutez WordPress sur un serveur partagé ou cloud sans blocage XML-RPC au niveau du serveur
  • Vous n’avez aucune relation établie avec d’autres blogs qui s’appuient sur ces protocoles

Envisagez de garder les pingbacks activés uniquement si :

  • Tous les sites liants sont connus, de confiance et au sein d’un réseau contrôlé
  • La modération des commentaires est réglée sur approbation manuelle
  • xmlrpc.php est protégé par une liste blanche d’IP ou une authentification HTTP au niveau du serveur
  • Vous avez confirmé que votre environnement d’hébergement n’est pas vulnérable au SSRF via des requêtes HTTP sortantes

À faire toujours, quel que soit votre choix :

  • Exécutez la requête SQL ci-dessus pour fermer le statut ping sur tous les articles existants
  • Bloquez xmlrpc.php au niveau du serveur web si vous n’utilisez pas XML-RPC à d’autres fins (l’API REST est le remplacement moderne pour les applications mobiles et la publication à distance)
  • Auditez votre file de commentaires existante pour les trackbacks spam précédemment approuvés

Pour les sites qui ont besoin d’une infrastructure robuste pour implémenter ces contrôles au niveau du serveur, les Serveurs Dédiés fournissent l’accès complet au réseau et au niveau OS requis pour appliquer les règles de pare-feu, bloquer des points de terminaison spécifiques et surveiller les tentatives de connexion sortantes depuis le processus du serveur web.

FAQ

Les trackbacks et les pingbacks sont-ils la même chose ?

Non. Les trackbacks sont des notifications HTTP POST manuelles qui contiennent un extrait et n’effectuent aucune vérification de lien. Les pingbacks sont des appels XML-RPC automatisés qui vérifient que l’article liant contient réellement l’URL référencée avant d’enregistrer la notification. Ils partagent le même objectif mais utilisent des protocoles différents avec des profils de sécurité différents.

Les trackbacks et pingbacks aident-ils au SEO ?

Pas de manière significative. Les liens générés par ces mécanismes apparaissent dans les sections de commentaires et sont tagués nofollow par défaut dans WordPress, ce qui signifie qu’ils ne transmettent aucun PageRank. Les trackbacks générés par spam peuvent activement nuire à l’autorité de votre site en l’associant à des domaines de faible qualité.

Puis-je désactiver les pingbacks sans désactiver l’ensemble de l’API XML-RPC ?

Oui. Vous pouvez désactiver les pingbacks spécifiquement via Réglages > Discussion ou en filtrant le hook xmlrpc_methods dans WordPress pour supprimer pingback.ping et pingback.extensions.getPingbacks tout en laissant les autres méthodes XML-RPC intactes. Cependant, bloquer xmlrpc.php entièrement au niveau du serveur est l’approche la plus sécurisée si vous n’avez pas d’autres dépendances XML-RPC.

Quel est le risque SSRF associé aux pingbacks WordPress ?

Lorsqu’un site WordPress reçoit un pingback, il effectue une requête HTTP sortante vers l’URL source pour vérifier le lien. Un attaquant peut fournir une adresse IP interne comme URL source, amenant le serveur à sonder les ressources réseau internes. Il s’agit d’une vulnérabilité de falsification de requête côté serveur. Le blocage de xmlrpc.php au niveau du serveur web élimine entièrement cette surface d’attaque.

Comment désactiver en masse les pingbacks sur des milliers d’articles WordPress existants ?

Utilisez une requête SQL directe sur votre base de données WordPress : UPDATE wp_posts SET ping_status = 'closed' WHERE post_status = 'publish' AND post_type = 'post'; — effectuez toujours une sauvegarde de la base de données avant d’exécuter toute modification SQL directe. Le paramètre du tableau de bord WordPress n’affecte que les nouveaux articles à venir.

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer