PluginProbe
The WP Remote WordPress Plugin / 4.73
The WP Remote WordPress Plugin v4.73
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 | plugin.php +58 -128 6.694.73 View file →
@@ -4,12 +4,10 @@
4 4 Plugin URI: https://wpremote.com
5 5 Description: Manage your WordPress site with <a href="https://wpremote.com/">WP Remote</a>.
6 6 Author: WP Remote
7 7 Author URI: https://wpremote.com
8 -Version: 6.69
8 +Version: 4.73
9 9 Network: True
10 -License: GPLv2 or later
11 -License URI: [http://www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html)
12 10 */
13 11
14 12 /* Copyright 2017 WP Remote (email : support@wpremote.com)
15 13
@@ -38,14 +36,8 @@
38 36 require_once dirname( __FILE__ ) . '/wp_api.php';
39 37 require_once dirname( __FILE__ ) . '/wp_actions.php';
40 38 require_once dirname( __FILE__ ) . '/info.php';
41 39 require_once dirname( __FILE__ ) . '/account.php';
42 -require_once dirname( __FILE__ ) . '/helper.php';
43 -require_once dirname( __FILE__ ) . '/wp_file_system.php';
44 -require_once dirname( __FILE__ ) . '/wp_2fa/wp_2fa.php';
45 -
46 -require_once dirname( __FILE__ ) . '/wp_login_whitelabel.php';
47 -
48 40 ##WPCACHEMODULE##
49 41
50 42
51 43 $bvsettings = new WPRWPSettings();
@@ -60,25 +52,19 @@
60 52 register_uninstall_hook(__FILE__, array('WPRWPAction', 'uninstall'));
61 53 register_activation_hook(__FILE__, array($wp_action, 'activate'));
62 54 register_deactivation_hook(__FILE__, array($wp_action, 'deactivate'));
63 55
64 -
65 56 add_action('wp_footer', array($wp_action, 'footerHandler'), 100);
66 -add_action('wpr_clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
67 -
57 +add_action('clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
68 58 ##SOADDUNINSTALLACTION##
69 59
70 -##DISABLE_OTHER_OPTIMIZATION_PLUGINS##
71 -
72 60 ##WPCLIMODULE##
73 -
74 61 if (is_admin()) {
75 62 require_once dirname( __FILE__ ) . '/wp_admin.php';
76 63 $wpadmin = new WPRWPAdmin($bvsettings, $bvsiteinfo);
77 64 add_action('admin_init', array($wpadmin, 'initHandler'));
78 - add_filter('all_plugins', array($wpadmin, 'initWhitelabel'));
65 + add_filter('all_plugins', array($wpadmin, 'initBranding'));
79 66 add_filter('plugin_row_meta', array($wpadmin, 'hidePluginDetails'), 10, 2);
80 - add_filter('debug_information', array($wpadmin, 'handlePluginHealthInfo'), 10, 1);
81 67 if ($bvsiteinfo->isMultisite()) {
82 68 add_action('network_admin_menu', array($wpadmin, 'menu'));
83 69 } else {
84 70 add_action('admin_menu', array($wpadmin, 'menu'));
@@ -84,107 +70,82 @@
84 70 add_action('admin_menu', array($wpadmin, 'menu'));
85 71 }
86 72 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
87 73 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
88 -
89 - ##MG_AJAX_ACTIONS##
90 - ##POPUP_ON_DEACTIVATION##
91 74 add_action('admin_notices', array($wpadmin, 'activateWarning'));
92 75 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
76 + ##SOADMINMENU##
93 77 }
94 78
95 -if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
96 - $_REQUEST = array_merge($_GET, $_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
97 -}
98 79
99 -#Service active check
100 -if ($bvinfo->config != false) {
101 - add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
80 +if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
81 + $_REQUEST = array_merge($_GET, $_POST);
102 82 }
103 83
104 -require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
105 -WPRWPPHPErrorMonitoring::init();
106 -
107 -if ($bvinfo->hasValidDBVersion()) {
108 - if ($bvinfo->isServiceActive('activity_log')) {
109 - require_once dirname( __FILE__ ) . '/wp_actlog.php';
110 - $bvconfig = $bvinfo->config;
111 - $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
112 - $actlog->init();
113 - }
114 -
115 - ##MAINTENANCEMODULE##
116 -}
117 -
118 -if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
84 +if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) {
119 85 require_once dirname( __FILE__ ) . '/callback/base.php';
120 86 require_once dirname( __FILE__ ) . '/callback/response.php';
121 87 require_once dirname( __FILE__ ) . '/callback/request.php';
122 88 require_once dirname( __FILE__ ) . '/recover.php';
123 89
124 - $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
125 - $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
126 - $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
90 + $pubkey = WPRAccount::sanitizeKey($_REQUEST['pubkey']);
127 91
128 - if (isset($rcvracc)) {
129 - $bvctag = WPRHelper::getRawParam('REQUEST', 'bvctag');
130 - $bvctag = isset($bvctag) ? WPRAccount::sanitizeKey($bvctag) : null;
131 - $account = WPRRecover::find($bvsettings, $pubkey, $bvctag);
92 + if (array_key_exists('rcvracc', $_REQUEST)) {
93 + $account = WPRRecover::find($bvsettings, $pubkey);
132 94 } else {
133 95 $account = WPRAccount::find($bvsettings, $pubkey);
134 96 }
135 97
136 - $request = new WPRCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
137 - $response = new WPRCallbackResponse($request->bvb64cksize);
98 + $request = new BVCallbackRequest($account, $_REQUEST);
99 + $response = new BVCallbackResponse($request->bvb64cksize);
138 100
139 - if ($request->authenticate() === 1) {
140 - $bv_frm_tstng = WPRHelper::getRawParam('REQUEST', 'bv_frm_tstng');
141 - if (isset($bv_frm_tstng)) {
142 - require_once dirname(__FILE__) . '/form_testing/form_testing.php';
143 - $form_testing = new BVFormTesting($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
144 - $form_testing->init();
101 + if ($account && (1 === $account->authenticate($request))) {
102 + define('WPRBASEPATH', plugin_dir_path(__FILE__));
145 103
146 - } else {
147 - define('WPRBASEPATH', plugin_dir_path(__FILE__));
148 104
105 + require_once dirname( __FILE__ ) . '/callback/handler.php';
149 106
150 - require_once dirname( __FILE__ ) . '/callback/handler.php';
151 -
152 - $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
153 - if ($params === false) {
154 - $response->terminate($request->corruptedParamsResp());
155 - }
156 - $request->params = $params;
157 - $callback_handler = new WPRCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
158 - if ($request->is_aftershutdown) {
159 - $callback_handler->deferExecutionUntilShutdown();
160 - } else if ($request->is_afterload) {
161 - add_action('wp_loaded', array($callback_handler, 'execute'));
162 - } else if ($request->is_admin_ajax) {
163 - add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
164 - add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
165 - } else {
166 - $callback_handler->execute();
167 - }
107 + $params = $request->processParams($_REQUEST);
108 + if ($params === false) {
109 + $resp = array(
110 + "account_info" => $account->info(),
111 + "request_info" => $request->info(),
112 + "bvinfo" => $bvinfo->info(),
113 + "statusmsg" => "BVPRMS_CORRUPTED"
114 + );
115 + $response->terminate($resp);
168 116 }
117 + $request->params = $params;
118 + $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
119 + if ($request->is_afterload) {
120 + add_action('wp_loaded', array($callback_handler, 'execute'));
121 + } else if ($request->is_admin_ajax) {
122 + add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
123 + add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
124 + } else {
125 + $callback_handler->execute();
126 + }
169 127 } else {
170 - $response->terminate($request->authFailedResp());
128 + $resp = array(
129 + "account_info" => $account ? $account->info() : array("error" => "ACCOUNT_NOT_FOUND"),
130 + "request_info" => $request->info(),
131 + "bvinfo" => $bvinfo->info(),
132 + "statusmsg" => "FAILED_AUTH",
133 + "api_pubkey" => substr(WPRAccount::getApiPublicKey($bvsettings), 0, 8),
134 + "def_sigmatch" => substr(WPRAccount::getSigMatch($request, WPRRecover::getDefaultSecret($bvsettings)), 0, 8)
135 + );
136 + $response->terminate($resp);
171 137 }
172 138 } else {
173 139 if ($bvinfo->hasValidDBVersion()) {
174 140 if ($bvinfo->isProtectModuleEnabled()) {
175 - require_once dirname( __FILE__ ) . '/protect/protect.php';
176 - //For backward compatibility.
177 - WPRProtect_V669::$settings = new WPRWPSettings();
178 - WPRProtect_V669::$db = new WPRWPDb();
179 - WPRProtect_V669::$info = new WPRInfo(WPRProtect_V669::$settings);
180 -
181 - add_action('wpr_clear_pt_config', array('WPRProtect_V669', 'uninstall'));
182 -
183 - if ($bvinfo->isActivePlugin()) {
184 - WPRProtect_V669::init(WPRProtect_V669::MODE_WP);
185 - }
141 + require_once dirname( __FILE__ ) . '/protect/wp/protect.php';
142 + $bvprotect = new BVProtect($bvdb, $bvsettings);
143 + $bvprotect->init();
144 + if ($bvinfo->isActivePlugin() && !(defined( 'WP_CLI' ) && WP_CLI)) {
145 + $bvprotect->run();
186 146 }
147 + }
187 148
188 149 if ($bvinfo->isDynSyncModuleEnabled()) {
189 150 require_once dirname( __FILE__ ) . '/wp_dynsync.php';
190 151 $bvconfig = $bvinfo->config;
@@ -191,11 +152,18 @@
191 152 $dynsync = new BVWPDynSync($bvdb, $bvsettings, $bvconfig['dynsync']);
192 153 $dynsync->init();
193 154 }
194 155
156 + if ($bvinfo->isServiceActive('activity_log')) {
157 + require_once dirname( __FILE__ ) . '/wp_actlog.php';
158 + $bvconfig = $bvinfo->config;
159 + $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
160 + $actlog->init();
195 161 }
162 +
163 + }
196 164 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
197 - if (is_array($bv_site_settings)) {
165 + if (isset($bv_site_settings)) {
198 166 if (isset($bv_site_settings['wp_auto_updates'])) {
199 167 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
200 168 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
201 169 add_filter('auto_update_core', '__return_false' );
@@ -211,45 +179,7 @@
211 179 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
212 180 add_filter('auto_update_translation', '__return_false' );
213 181 }
214 182 }
215 -
216 - if (isset($bv_site_settings['security_hardening'])) {
217 - $bv_security_hardening = $bv_site_settings['security_hardening'];
218 - if (is_array($bv_security_hardening) &&
219 - isset($bv_security_hardening['version']) &&
220 - $bv_security_hardening['version'] === 1) {
221 - if (isset($bv_security_hardening['disable_file_editor']) &&
222 - $bv_security_hardening['disable_file_editor'] === true &&
223 - !defined('DISALLOW_FILE_EDIT')) {
224 - define('DISALLOW_FILE_EDIT', true);
225 - }
226 -
227 - if (isset($bv_security_hardening['block_file_modifications']) &&
228 - $bv_security_hardening['block_file_modifications'] === true &&
229 - !defined('DISALLOW_FILE_MODS')) {
230 - define('DISALLOW_FILE_MODS', true);
231 - }
232 - }
233 - }
234 -
235 183 }
236 184
237 - if (is_admin()) {
238 - add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
239 - }
240 -
241 - ##THIRDPARTYCACHINGMODULE##
242 -}
243 -
244 -if (WPRWP2FA::isEnabled($bvsettings)) {
245 - $wp_2fa = new WPRWP2FA();
246 - $wp_2fa->init();
247 -}
248 -
249 -if (!empty($bvinfo->getLPWhitelabelInfo())) {
250 - $wp_login_whitelabel = new WPRWPLoginWhitelabel();
251 - $wp_login_whitelabel->init();
252 -}
253 -
254 -add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));
255 -##PLUGIN_LOADED_MODULE##
185 +}