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

Sécurité

Fuite d’anciens comptes après une migration Squarespace mal nettoyée

Des règles de redirection héritées d'une ancienne plateforme continuaient d'exposer des identifiants de comptes que personne n'utilisait plus.

Par WordPress Développement • 8 janvier 2023 • 4 min de lecture • Aucun commentaire
Fuite d'anciens comptes après une migration Squarespace mal nettoyée

187 règles de redirection : c’est le nombre que le fichier .htaccess hérité contenait encore, six mois après la bascule complète du site vers WordPress. Ce fichier n’avait jamais été nettoyé, seulement complété, migration après migration, depuis la plateforme d’origine.

Un développeur reprenant la maintenance du site a voulu comprendre pourquoi certaines requêtes anormales ciblaient des chemins en /account/ suivis d’identifiants numériques à six chiffres, un format totalement étranger à la structure WordPress en place. La réponse se trouvait dans ces règles de redirection jamais purgées.

Une plateforme fantôme toujours accessible

Avant sa migration vers WordPress, le site fonctionnait sur Squarespace. Lors du passage, une partie du contenu éditorial avait été reprise manuellement, mais certaines routes techniques héritées — en particulier celles liées à l’ancien espace membre — avaient été redirigées « pour éviter les erreurs 404 » plutôt que supprimées. Ces redirections pointaient vers des pages de connexion d’un sous-domaine Squarespace resté actif en arrière-plan, toujours lié au compte d’origine du client.

Le sous-domaine n’apparaissait dans aucun menu ni aucun lien visible du nouveau site. Il n’existait plus, du point de vue de l’éditeur, que dans la mémoire d’un fichier de configuration serveur. Pourtant, 47 identifiants de comptes suivant le format hérité répondaient encore avec un code 200 lorsqu’ils étaient interrogés directement.

Comment ces identifiants ont été retrouvés

L’examen des journaux d’accès a montré des requêtes automatisées testant des suites d’identifiants consécutifs sur ce même schéma d’URL, signe qu’un tiers avait déjà repéré la structure et tentait une énumération. Rien n’indiquait une intrusion réussie, mais la simple existence de cette surface accessible constituait déjà une exposition inacceptable, notamment parce que certains de ces comptes correspondaient à d’anciens collaborateurs du client n’ayant plus aucune raison d’y accéder.

  • Le sous-domaine Squarespace restait résolu par le DNS du client, sans lien visible depuis WordPress.
  • Les règles de redirection du .htaccess pointaient explicitement vers ce sous-domaine.
  • Aucune procédure de désactivation de l’ancien abonnement n’avait été suivie lors de la migration.
L'essentiel à retenir : Une redirection héritée peut révéler une structure d'URL obsolète ; Un identifiant interne oublié reste une porte d'entrée valide ; Auditer les règles de réécriture après chaque bascule de plateforme

Nettoyer, pas seulement rediriger

La correction a suivi trois étapes distinctes, dans un ordre précis : d’abord la révocation de l’ancien abonnement Squarespace auprès du client pour rendre le sous-domaine définitivement inaccessible, ensuite la suppression des règles de redirection obsolètes, enfin la mise en place de redirections propres uniquement vers des contenus qui existent réellement sur le nouveau site.

# Avant : redirection héritée vers l'ancienne plateforme
RewriteRule ^account/([0-9]{6})/?$ https://ancien-site.squarespace.com/account/$1 [R=301,L]

# Après : suppression pure et simple, remplacée par une 410 explicite
RewriteRule ^account/([0-9]{6})/?$ - [G]

Le code de statut 410 Gone plutôt qu’un 404 Not Found a été choisi volontairement : il indique aux robots d’indexation et aux outils d’audit que ces ressources ont été retirées de façon permanente et intentionnelle, ce qui accélère leur désindexation.

Un audit de redirections à part entière

Cette découverte a conduit à instaurer, pour tous les projets de migration suivants, une revue systématique des fichiers de réécriture existants avant toute reprise de développement. Un fichier .htaccess ou une configuration Nginx accumulée sur plusieurs années contient souvent des règles dont plus personne ne connaît l’origine ni la justification.

Étape de l’auditObjectif
Lister toutes les règles activesIdentifier chaque cible, interne ou externe
Tester la résolution de chaque cibleDétecter les domaines encore actifs à tort
Confirmer la fermeture des comptes tiersÉliminer les accès résiduels sur l’ancienne plateforme
Remplacer par des règles minimales et documentéesRéduire la surface de configuration héritée

La responsabilité ne s’arrête pas au contenu éditorial

Une migration de site est trop souvent pensée uniquement en termes de contenu : articles, pages, médias. Les éléments d’infrastructure — comptes, sous-domaines, jetons d’API, redirections — appartiennent à un périmètre distinct, souvent négligé parce qu’il ne se voit pas dans l’interface d’administration du nouveau site.

Conseil retenu depuis cet incident : toute migration se termine par une checklist de fermeture de l’ancienne plateforme, pas seulement par la bascule DNS vers la nouvelle.

Pour aller plus loin

Ce cas illustre un principe simple mais rarement formalisé : un site migré n’est réellement sécurisé que lorsque son ancienne version cesse d’exister, pas seulement lorsqu’elle cesse d’être visible. Un DNS actif, un abonnement non résilié ou une redirection oubliée suffisent à maintenir une porte ouverte sur une plateforme que plus personne ne surveille.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

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

Voir tous ses articles

Dans la même veine

À lire aussi