PluginProbe
The WP Remote WordPress Plugin / 6.02
The WP Remote WordPress Plugin v6.02
6.72 6.69 6.65 6.62 6.48 6.47 4.87 4.97 5.05 5.09 5.16 5.22 5.24 5.25 5.38 5.41 5.42 5.45 5.47 5.53 5.56 5.65 5.68 5.72 5.73 All 53 releases
← All changes | callback/wings/info.php +78 -19 5.476.02 View file →
@@ -9,9 +9,9 @@
9 9 public $siteinfo;
10 10 public $bvinfo;
11 11 public $bvapi;
12 12
13 - const INFO_WING_VERSION = 2.0;
13 + const INFO_WING_VERSION = 2.7;
14 14
15 15 public function __construct($callback_handler) {
16 16 $this->db = $callback_handler->db;
17 17 $this->siteinfo = $callback_handler->siteinfo;
@@ -75,9 +75,13 @@
75 75 'file' => $plugin_file,
76 76 'title' => $plugin_data['Title'],
77 77 'version' => $plugin_data['Version'],
78 78 'active' => is_plugin_active($plugin_file),
79 - 'network' => $plugin_data['Network']
79 + 'network' => $plugin_data['Network'],
80 + "plugin_uri" => $plugin_data["PluginURI"],
81 + "update_uri" => $plugin_data["UpdateURI"],
82 + "author_uri" => $plugin_data["AuthorURI"],
83 + "author" => $plugin_data["AuthorName"],
80 84 );
81 85 $pdata = $this->addDBInfoToPlugin($pdata, $plugin_file);
82 86 $result["plugins"][] = $pdata;
83 87 }
@@ -90,9 +94,13 @@
90 94 'name' => $theme->Name,
91 95 'title' => $theme->Title,
92 96 'stylesheet' => $theme->get_stylesheet(),
93 97 'template' => $theme->Template,
94 - 'version' => $theme->Version
98 + 'version' => $theme->Version,
99 + 'theme_uri' => $theme->get('ThemeURI'),
100 + 'author' => $theme->get('Author'),
101 + 'author_uri' => $theme->get('AuthorURI'),
102 + 'update_uri' => $theme->get('UpdateURI'),
95 103 );
96 104 } else {
97 105 $pdata = array(
98 106 'name' => $theme["Name"],
@@ -98,9 +106,11 @@
98 106 'name' => $theme["Name"],
99 107 'title' => $theme["Title"],
100 108 'stylesheet' => $theme["Stylesheet"],
101 109 'template' => $theme["Template"],
102 - 'version' => $theme["Version"]
110 + 'version' => $theme["Version"],
111 + 'author' => $theme['Author'],
112 + 'author_uri' => $theme['Author URI'],
103 113 );
104 114 }
105 115 return $pdata;
106 116 }
@@ -106,15 +116,14 @@
106 116 }
107 117
108 118 public function getThemes() {
109 119 $result = array();
110 - $themes = function_exists('wp_get_themes') ? wp_get_themes() : get_themes();
120 + $themes = wp_get_themes();
111 121 foreach($themes as $theme) {
112 122 $pdata = $this->themeToArray($theme);
113 123 $result["themes"][] = $pdata;
114 124 }
115 - $theme = function_exists('wp_get_theme') ? wp_get_theme() : get_current_theme();
116 - $pdata = $this->themeToArray($theme);
125 + $pdata = $this->themeToArray(wp_get_theme());
117 126 $result["currenttheme"] = $pdata;
118 127 return $result;
119 128 }
120 129
@@ -119,14 +128,14 @@
119 128 }
120 129
121 130 public function getSystemInfo() {
122 131 $sys_info = array(
123 - 'host' => $_SERVER['HTTP_HOST'],
132 + 'host' => WPRHelper::getRawParam('SERVER', 'HTTP_HOST'),
124 133 'phpversion' => phpversion(),
125 134 'AF_INET6' => defined('AF_INET6')
126 135 );
127 136 if (array_key_exists('SERVER_ADDR', $_SERVER)) {
128 - $sys_info['serverip'] = $_SERVER['SERVER_ADDR'];
137 + $sys_info['serverip'] = WPRHelper::getRawParam('SERVER', 'SERVER_ADDR');
129 138 }
130 139 if (function_exists('get_current_user')) {
131 140 $sys_info['user'] = get_current_user();
132 141 }
@@ -167,8 +176,10 @@
167 176 'uploaddir' => wp_upload_dir(),
168 177 'contentdir' => defined('WP_CONTENT_DIR') ? WP_CONTENT_DIR : null,
169 178 'contenturl' => defined('WP_CONTENT_URL') ? WP_CONTENT_URL : null,
170 179 'plugindir' => defined('WP_PLUGIN_DIR') ? WP_PLUGIN_DIR : null,
180 + 'themedir' => get_stylesheet_directory(),
181 + 'templatedir' => get_template_directory(),
171 182 'dbcharset' => defined('DB_CHARSET') ? DB_CHARSET : null,
172 183 'disallow_file_edit' => defined('DISALLOW_FILE_EDIT'),
173 184 'disallow_file_mods' => defined('DISALLOW_FILE_MODS'),
174 185 'custom_users' => defined('CUSTOM_USER_TABLE') ? CUSTOM_USER_TABLE : null,
@@ -174,9 +185,11 @@
174 185 'custom_users' => defined('CUSTOM_USER_TABLE') ? CUSTOM_USER_TABLE : null,
175 186 'custom_usermeta' => defined('CUSTOM_USERMETA_TABLE') ? CUSTOM_USERMETA_TABLE : null,
176 187 'locale' => get_locale(),
177 188 'wp_local_string' => $wp_local_package,
178 - 'charset_collate' => $db->getCharsetCollate()
189 + 'charset_collate' => $db->getCharsetCollate(),
190 + 'allowed_paths' => ini_get('open_basedir'),
191 + 'path_seprator' => PATH_SEPARATOR
179 192 );
180 193 return $wp_info;
181 194 }
182 195
@@ -215,8 +228,14 @@
215 228 }
216 229 if (function_exists('openssl_public_decrypt')) {
217 230 $info['openssl_public_decrypt'] = "1";
218 231 }
232 + if (function_exists('openssl_encrypt')) {
233 + $info['openssl_encrypt'] = "1";
234 + }
235 + if (function_exists('openssl_decrypt')) {
236 + $info['openssl_decrypt'] = "1";
237 + }
219 238 $info['sha1'] = "1";
220 239 $info['apissl'] = "1";
221 240 if (function_exists('base64_encode')) {
222 241 $info['b64encode'] = true;
@@ -263,9 +282,16 @@
263 282 }
264 283
265 284 public function getHostInfo() {
266 285 $host_info = $_SERVER;
267 - $host_info['PHP_SERVER_NAME'] = php_uname('\n');
286 + if (function_exists('php_uname')) {
287 + $host_info['PHP_SERVER_NAME'] = php_uname();
288 + }
289 +
290 + if (isset($_SERVER['SERVER_ADDR']) && function_exists('gethostbyaddr')) {
291 + $host_info['HOST_FROM_IP'] = gethostbyaddr(WPRHelper::getRawParam('SERVER', 'SERVER_ADDR'));
292 + }
293 +
268 294 if (array_key_exists('IS_PRESSABLE', get_defined_constants())) {
269 295 $host_info['IS_PRESSABLE'] = true;
270 296 }
271 297
@@ -276,14 +302,18 @@
276 302 if (defined('WPE_APIKEY')) {
277 303 $host_info['WPE_APIKEY'] = WPE_APIKEY;
278 304 }
279 305
306 + if (defined('IS_ATOMIC')) {
307 + $host_info['IS_ATOMIC'] = IS_ATOMIC;
308 + }
309 +
280 310 return $host_info;
281 311 }
282 312
283 313 public function serverConfig() {
284 314 return array(
285 - 'software' => $_SERVER['SERVER_SOFTWARE'],
315 + 'software' => WPRHelper::getRawParam('SERVER', 'SERVER_SOFTWARE'),
286 316 'sapi' => (function_exists('php_sapi_name')) ? php_sapi_name() : false,
287 317 'has_apache_get_modules' => function_exists('apache_get_modules'),
288 318 'posix_getuid' => (function_exists('posix_getuid')) ? posix_getuid() : null,
289 319 'uid' => (function_exists('getmyuid')) ? getmyuid() : null,
@@ -476,8 +506,31 @@
476 506
477 507 return $result;
478 508 }
479 509
510 + function getPluginFileData($plugin_file) {
511 + $result = array();
512 +
513 + if (!function_exists('get_plugin_data')) {
514 + require_once ABSPATH . 'wp-admin/includes/plugin.php';
515 + }
516 + $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_file);
517 + if ($plugin_data && isset($plugin_data['Version'])) {
518 + $result['version'] = $plugin_data['Version'];
519 + }
520 +
521 + return $result;
522 + }
523 +
524 + function fetchPluginApiData($slug, $action) {
525 + $args = array('slug' => wp_unslash($slug));
526 + $args = (object) $args;
527 + $args = apply_filters('plugins_api_args', $args, $action);
528 + $data = apply_filters('plugins_api', false, $action, $args);
529 +
530 + return $data;
531 + }
532 +
480 533 public function process($request) {
481 534 $db = $this->db;
482 535 $params = $request->params;
483 536 switch ($request->method) {
@@ -533,16 +586,22 @@
533 586 break;
534 587 case "gthost":
535 588 $resp = array('host_info' => $this->getHostInfo());
536 589 break;
590 + case "gtplsinfo":
591 + $resp = array("plugins_info" => array());
592 + $file_by_slug = $params["file_by_slug"];
593 + foreach ($params['slugs'] as $slug) {
594 + $data = $this->fetchPluginApiData($slug, $params['action']);
595 + if (is_object($data) && !property_exists($data, 'version') && isset($file_by_slug[$slug])) {
596 + $plugin_data = $this->getPluginFileData($file_by_slug[$slug]);
597 + $data->version = $plugin_data['version'];
598 + }
599 + $resp['plugins_info'][$slug] = $data;
600 + }
601 + break;
537 602 case "gtplinfo":
538 - $args = array(
539 - 'slug' => wp_unslash($params['slug'])
540 - );
541 - $action = $params['action'];
542 - $args = (object) $args;
543 - $args = apply_filters('plugins_api_args', $args, $action);
544 - $data = apply_filters('plugins_api', false, $action, $args);
603 + $data = $this->fetchPluginApiData($params['slug'], $params['action']);
545 604 $resp = array("plugins_info" => $data);
546 605 break;
547 606 case "gtpostactinfo":
548 607 $resp = $this->getPostActivateInfo($params);