J'ai scanné un client' ; s boutique pour les plugins et j'en ai récupéré trois Le site était en cours d'exécution vingt-six Rien n'était cassé et rien n'était caché exprès : leur plugin d'optimisation avait fusionné chaque script en un fichier combiné, et un fichier fusionné n'a pas de dossiers de plugin dans son nom L'analyse était précise sur ce que la page chargeait et inutile comme inventaire, ce qui est la distinction à propos de ce guide.
Détecter des plugins depuis l'extérieur d'un site est véritablement utile et véritablement limité, et la plupart des outils ne vous disent que la première moitié Voici comment fonctionne la détection, ce que chaque résultat peut et ne peut pas signifier, et comment lire une courte liste sans tirer la mauvaise conclusion Le Détecteur de plugin WordPress rapporte les deux moitiés exprès.
tl;dr : La détection de plugin fonctionne en recherchant les fichiers chargés à partir de
/wp-content/plugins/<slug>/dans une page. Tout ce qui ne charge pas un fichier frontal est invisible : les plugins réservés aux administrateurs, les plugins qui se déclenchent sur d'autres pages et tout ce dont un plugin de mise en cache a fusionné les actifs dans un fichier combiné. Traitez le résultat comme un étage, jamais comme un total. Numériser une page intérieure au lieu de la page d'accueil en trouve plus de manière fiable.
Comment fonctionne réellement la détection des plugins ?
Un plugin qui fait tout ce qui est visible doit charger quelque chose à partir de son propre dossier WordPress sert des fichiers plugin à partir d'un chemin fixe, des /wp-content/plugins/<slug>/ainsi, toute feuille de style, script ou image chargée à partir de là nomme le plugin qui le possède :
<link rel="stylesheet" href="/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.9.3" />
<script src="/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=9.2.3"></script>
C'est contact-form-7 et woocommerce[traduction], énoncé par la page plutôt que déduit de la façon dont elle se comporte Quelques plugins s'annoncent plus clairement encore : une classe de corps, un espace de noms REST sous /wp-json/(en), une balise méta, un commentaire HTML, un nom de cookie.
La version circule généralement dans la chaîne de requête. ?ver=5.9.3 c'est ce que WordPress ajoute pour la suppression du cache, et sur la plupart des installations, c'est le plugin' ; version réelle. Les sites qui suppriment les chaînes de requête de version pour des raisons de mise en cache, ou qui codent en dur une valeur, ne rapporteront rien ou quelque chose de obsolète.
| Preuve | exemple | Confiance |
|---|---|---|
| Chemin d'actifs | /wp-content/plugins/woocommerce/... |
Le plugin a chargé un fichier sur cette page |
| Chaîne de requête de version | ?ver=9.2.3 |
Habituellement la version installée |
| Espace de noms REST | /wp-json/wc/v3 |
Les routes API enregistrées par plugin |
| Classe corporelle | woocommerce-page |
Le plugin est actif sur ce type de page |
Pourquoi tant de plugins restent invisibles ?
Quatre configurations ordinaires cachent des plugins, et aucune d'entre elles ne signifie que le site fait quelque chose de mal.
Les plugins réservés aux administrateurs ne chargent rien pour un visiteur. Planificateurs de sauvegarde, éditeurs SEO, outils de migration, gestionnaires de rôles d'utilisateurs, utilitaires de mise en scène : ils font leur travail à l'intérieur wp-admin et n'ajoutez rien au front-end Une grande part de tout site réel' ; s liste de plugin est dans cette catégorie et est invisible de l'extérieur par conception.
Les plugins s'allument sur les pages auxquelles ils s'adressent. Un plugin de paiement se charge à la caisse Un plugin de formulaire se charge là où se trouve le formulaire La numérisation d'une page d'accueil et la conclusion que le site comporte trois plugins, c'est comme lire la première page d'un livre et signaler son nombre de mots.
Les plugins d'optimisation effacent les noms de dossiers. C'est le grand Un plugin qui concatène chaque script et feuille de style dans un seul fichier sous un dossier cache supprime les noms de dossiers de plugin de tout ce qu'il a fusionné, y compris le sien Le code est toujours là Les preuves ne le sont pas.
Les hôtes et les CDN réécrivent les chemins d'actifs. Certains hôtes gérés procurent chaque fichier statique via un chemin qui ne contient plus /wp-content/plugins/. Même effet, appliqué à l'ensemble du site à la fois.
Ainsi, un résultat vide a au moins cinq significations : aucun plugin n'est actif, aucun ne charge les actifs frontaux, un optimiseur les a fusionnés, l'hôte a réécrit les chemins ou le site n'est pas WordPress. Un outil qui rapporte " ; 0 plugins" ; sans les séparer, il ne rapporte pas de découverte, il rapporte son propre angle mort.
Que signifie un nom de dossier sans vrai nom ?
La détection vous donne un slug. Transformer ce slug en un nom publié, une version actuelle et un nombre d'installations nécessitent de le faire correspondre au répertoire du plugin, et tous les plugins ne sont pas dans un seul.
Un slug nu sans entrée correspondante signifie presque toujours l'une des trois choses suivantes Il s'agit d'un plugin premium vendu en dehors de WordPress.org, qui décrit la plupart des créateurs de pages commerciales, des plugins de formulaire et des systèmes d'adhésion Il est personnalisé, écrit pour celui-là par celui qui l'a construit Ou le dossier a simplement été renommé, ce que certains propriétaires de site font délibérément.
C'est en soi un signal utile Un site dont la liste de plugins est pour la plupart inégalée slugs exécute un logiciel commercial ou sur mesure, et qui vous dit quelque chose sur le budget qui le sous-tend avant que vous n'ayez posé une question à qui que ce soit.
Comment obtenir une image plus complète ?
Scannez plus d'une page C'est l'habitude unique de valeur la plus élevée, et cela ne coûte rien :
- La page d'accueil, pour le mobilier du site : analyses, bannières de consentement, créateurs de pages, curseurs.
- Un billet de blog, pour les plugins côté contenu : articles connexes, table des matières, partage social, systèmes de commentaires.
- Un produit ou une page de prix, pour le commerce : le plugin shop, les passerelles de paiement, les switchers de devises.
- Une page de contact, pour les formulaires, les cartes et la protection anti-spam.
Prenez le syndicat Même alors, c'est un étage, mais beaucoup plus élevé que n'importe quelle page ne le donne.
le /wp-json/ l'index vaut également le détour lorsqu'il est activé. Les plugins qui enregistrent les routes REST y apparaissent par espace de noms, quel que soit le chargement du frontal, afin de détecter une partie de ce que manquent les chemins d'actifs :
curl -s https://example.com/wp-json/ | grep -o '"namespace":"[^"]*"' | sort -u
La numérisation de quelqu'un' ; s site est-elle acceptable ?
La lecture d'une page publique est une requête ordinaire Elle apparaît dans le site' ; s journal d'accès exactement comme une visite d'un navigateur, et il ne se connecte pas, ne soumet rien ou ne touche pas la zone d'administration Documentation de sécurité WordPress s'intéresse à ce qu'une demande authentifiée ou d'enquête peut faire, et non à ce qu'une page publie volontairement à chaque visiteur.
Là où il devient plus net est l'intention Une liste de plugins est la reconnaissance si vous l'utilisez comme un seul : une version obsolète d'un plugin avec une vulnérabilité connue est exactement ce que recherche un attaquant C'est une raison pour garder vos propres plugins à jour plutôt qu'une raison de prétendre que l'information est secrète, puisque n'importe qui peut lire la même page Si vous auditez un site que vous ne possédez pas, tenez-vous-en à ce que la page vous dit et laissez-le là.
À quoi sert le résultat
Utilisé dans ses limites, un scan externe de plugin répond rapidement à de vraies questions Quel constructeur de page utilise ce site, donc je peux citer pour les modifications Ce shop sur WooCommerce ou quelque chose d'hébergé Quel est le plugin de formulaire, donc je peux y faire correspondre Est-ce que ce concurrent exécute la même pile SEO que nous sommes Est mon propre site de mise en scène charge accidentellement un plugin Je désactivé localement.
Ce qu'il ne peut pas faire, c'est produire un inventaire Pour cela, vous avez besoin de l'administrateur, de wp plugin list au-dessus de WP-CLI(ou) quelqu'un qui a la connexion.
Si la question est de savoir ce qui rend la page plutôt que ce qui la charge, c'est la suivante Détecteur de thème WordPress(en), qui lit le thème' ;s propre style.css pour le nom, la version et le parent Et quand c'est vous qui publiez un plugin, le générateur readme écrit le readme.txt cela décide de la façon dont votre plugin' ; lit la propre liste de répertoires.



