web-dev-qa-db-ja.com

WordPressインストールのバージョンをリモートで識別しますか?

どのように DD32のツール インストールのWordPressのバージョンを決定します。 WP 3.1ではうまく動作しませんが、meta generatorタグやWPのreadme.txtは使用しません。それでは他に何ができるでしょうか?

4
Ashfame

私はここで仮定しているだけですが、これは通常特定のバージョンのファイル/ディレクトリの/ code、時にはサイズさえ指紋採取することによって行われます。

たとえば、すべてのメタバージョンタグ(12箇所ではありません)と3.1の.txtファイルを削除できますが、3.1がデフォルトで次の新しいファイルを含める唯一のバージョンであるため、フィンガープリントはかなり簡単です。

wp-includes/js/l10n.js

スマートボットを書くのに十分な時間をかけても、各リリースには多くの新しい追加があるので、リリース固有のデータを見つけるのはそれほど難しくありません。これらすべての情報を隠すのは、すべてのリリースで大変な作業になります。

4
Wyck

これは私がしばらく前にWPバージョン検出を最も明白な方法で行うために書いたコードです: http://ottodestruct.com/class-wp-detection.phps

他にも微妙でわかりにくい方法があります。彼の方法はファイルフィンガープリントです。基本的に特定のファイルが存在するかどうかを確認します。

11
Otto

私はすでに受け入れられた答えがあったことを知っています、しかしそれをそこに投げ出すだけです。私のやり方はあなたのブログディレクトリの 'wp-includes/version.php'ファイルから$ wp_version変数を解析することです。

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