PluginProbe
The WP Remote WordPress Plugin / 4.84
The WP Remote WordPress Plugin v4.84
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 +52 -119 6.654.84 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.65
8 +Version: 4.84
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,27 +70,18 @@
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 + ##ALPURGECACHEFUNCTION##
77 + ##ALADMINMENU##
93 78 }
94 79
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
80 +if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
81 + $_REQUEST = array_merge($_GET, $_POST);
97 82 }
98 83
99 -#Service active check
100 -if ($bvinfo->config != false) {
101 - add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
102 -}
103 -
104 -require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
105 -WPRWPPHPErrorMonitoring::init();
106 -
107 84 if ($bvinfo->hasValidDBVersion()) {
108 85 if ($bvinfo->isServiceActive('activity_log')) {
109 86 require_once dirname( __FILE__ ) . '/wp_actlog.php';
110 87 $bvconfig = $bvinfo->config;
@@ -111,80 +88,74 @@
111 88 $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
112 89 $actlog->init();
113 90 }
114 91
115 - ##MAINTENANCEMODULE##
116 92 }
117 93
118 -if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
94 +if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) {
119 95 require_once dirname( __FILE__ ) . '/callback/base.php';
120 96 require_once dirname( __FILE__ ) . '/callback/response.php';
121 97 require_once dirname( __FILE__ ) . '/callback/request.php';
122 98 require_once dirname( __FILE__ ) . '/recover.php';
123 99
124 - $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
125 - $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
126 - $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
100 + $pubkey = WPRAccount::sanitizeKey($_REQUEST['pubkey']);
127 101
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);
102 + if (array_key_exists('rcvracc', $_REQUEST)) {
103 + $account = WPRRecover::find($bvsettings, $pubkey);
132 104 } else {
133 105 $account = WPRAccount::find($bvsettings, $pubkey);
134 106 }
135 107
136 - $request = new WPRCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
137 - $response = new WPRCallbackResponse($request->bvb64cksize);
108 + $request = new BVCallbackRequest($account, $_REQUEST);
109 + $response = new BVCallbackResponse($request->bvb64cksize);
138 110
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();
111 + if ($account && (1 === $account->authenticate($request))) {
112 + define('WPRBASEPATH', plugin_dir_path(__FILE__));
145 113
146 - } else {
147 - define('WPRBASEPATH', plugin_dir_path(__FILE__));
148 114
115 + require_once dirname( __FILE__ ) . '/callback/handler.php';
149 116
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 - }
117 + $params = $request->processParams($_REQUEST);
118 + if ($params === false) {
119 + $resp = array(
120 + "account_info" => $account->info(),
121 + "request_info" => $request->info(),
122 + "bvinfo" => $bvinfo->info(),
123 + "statusmsg" => "BVPRMS_CORRUPTED"
124 + );
125 + $response->terminate($resp);
168 126 }
127 + $request->params = $params;
128 + $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
129 + if ($request->is_afterload) {
130 + add_action('wp_loaded', array($callback_handler, 'execute'));
131 + } else if ($request->is_admin_ajax) {
132 + add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
133 + add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
134 + } else {
135 + $callback_handler->execute();
136 + }
169 137 } else {
170 - $response->terminate($request->authFailedResp());
138 + $resp = array(
139 + "account_info" => $account ? $account->info() : array("error" => "ACCOUNT_NOT_FOUND"),
140 + "request_info" => $request->info(),
141 + "bvinfo" => $bvinfo->info(),
142 + "statusmsg" => "FAILED_AUTH",
143 + "api_pubkey" => substr(WPRAccount::getApiPublicKey($bvsettings), 0, 8),
144 + "def_sigmatch" => substr(WPRAccount::getSigMatch($request, WPRRecover::getDefaultSecret($bvsettings)), 0, 8)
145 + );
146 + $response->terminate($resp);
171 147 }
172 148 } else {
173 149 if ($bvinfo->hasValidDBVersion()) {
174 150 if ($bvinfo->isProtectModuleEnabled()) {
175 - require_once dirname( __FILE__ ) . '/protect/protect.php';
176 - //For backward compatibility.
177 - WPRProtect_V665::$settings = new WPRWPSettings();
178 - WPRProtect_V665::$db = new WPRWPDb();
179 - WPRProtect_V665::$info = new WPRInfo(WPRProtect_V665::$settings);
180 -
181 - add_action('wpr_clear_pt_config', array('WPRProtect_V665', 'uninstall'));
182 -
183 - if ($bvinfo->isActivePlugin()) {
184 - WPRProtect_V665::init(WPRProtect_V665::MODE_WP);
185 - }
151 + require_once dirname( __FILE__ ) . '/protect/wp/protect.php';
152 + $bvprotect = new BVProtect($bvdb, $bvsettings);
153 + $bvprotect->init();
154 + if ($bvinfo->isActivePlugin() && !(defined( 'WP_CLI' ) && WP_CLI)) {
155 + $bvprotect->run();
186 156 }
157 + }
187 158
188 159 if ($bvinfo->isDynSyncModuleEnabled()) {
189 160 require_once dirname( __FILE__ ) . '/wp_dynsync.php';
190 161 $bvconfig = $bvinfo->config;
@@ -193,9 +164,9 @@
193 164 }
194 165
195 166 }
196 167 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
197 - if (is_array($bv_site_settings)) {
168 + if (isset($bv_site_settings)) {
198 169 if (isset($bv_site_settings['wp_auto_updates'])) {
199 170 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
200 171 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
201 172 add_filter('auto_update_core', '__return_false' );
@@ -211,45 +182,7 @@
211 182 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
212 183 add_filter('auto_update_translation', '__return_false' );
213 184 }
214 185 }
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 186 }
236 187
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##
188 +}