web-dev-qa-db-fra.com

Identifiant à distance de la version d'une installation WordPress?

Comment l'outil de DD32 détermine-t-il la version WordPress d'une installation? Cela ne fonctionne pas bien pour WP 3.1 mais il n'utilise pas de balise meta generator ni le fichier readme.txt de WP. Alors quoi d'autre peut-il être?

4
Ashfame

Je suppose juste ici, mais cela se fait généralement en prenant les empreintes pour la version spécifique des fichiers/répertoires/code et parfois même la taille.

Par exemple, vous pouvez supprimer toutes les balises Meta versions (12 emplacements) et le fichier .txt pour 3.1, mais 3.1 étant la seule version à inclure le nouveau fichier suivant par défaut, il est assez facile de prendre les empreintes digitales.

wp-includes/js/l10n.js

Comme chaque version comporte de nombreux ajouts, si vous passez suffisamment de temps à écrire un bot intelligent, il n’est pas très difficile de trouver des données spécifiques à la version. Cacher toute cette information représenterait beaucoup de travail pour chaque publication.

4
Wyck

C’est un peu de code que j’écrivais il ya quelque temps à la détection de versions de la manière la plus évidente WP: http://ottodestruct.com/class-wp-detection.phps

Il existe d'autres méthodes, plus subtiles et moins évidentes. Sa méthode est l'empreinte de fichier. En gros, vérifier si certains fichiers existent ou non.

11
Otto

Je sais que la réponse a déjà été acceptée, mais il suffit de jeter cela dehors. Pour ce faire, j'analyse la variable $ wp_version du fichier 'wp-includes/version.php' de votre répertoire:

function get_wp_version() {
 $versionFile = ABS_PATH.'/wp-includes/version.php'
 // NO VERSION FILE //
 if (($versionStr = @file_get_contents($versionFile))=='') return ''; 

 $regex = "wp_version.*'(?<wpVersion>.*)'";
 if (preg_match('/'.$regex.'/', $versionStr, $matches)) {
  return $matches['wpVersion'];
 }
 return '';
}
0
DTest