PluginProbe
The WP Remote WordPress Plugin / 6.44
The WP Remote WordPress Plugin v6.44
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 +84 -48 5.096.44 View file →
@@ -4,10 +4,12 @@
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: 5.09
8 +Version: 6.44
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)
10 12 */
11 13
12 14 /* Copyright 2017 WP Remote (email : support@wpremote.com)
13 15
@@ -37,8 +39,13 @@
37 39 require_once dirname( __FILE__ ) . '/wp_actions.php';
38 40 require_once dirname( __FILE__ ) . '/info.php';
39 41 require_once dirname( __FILE__ ) . '/account.php';
40 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 +
41 48 ##WPCACHEMODULE##
42 49
43 50
44 51 $bvsettings = new WPRWPSettings();
@@ -53,10 +60,12 @@
53 60 register_uninstall_hook(__FILE__, array('WPRWPAction', 'uninstall'));
54 61 register_activation_hook(__FILE__, array($wp_action, 'activate'));
55 62 register_deactivation_hook(__FILE__, array($wp_action, 'deactivate'));
56 63
64 +
57 65 add_action('wp_footer', array($wp_action, 'footerHandler'), 100);
58 -add_action('clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
66 +add_action('wpr_clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
67 +
59 68 ##SOADDUNINSTALLACTION##
60 69
61 70 ##DISABLE_OTHER_OPTIMIZATION_PLUGINS##
62 71
@@ -64,9 +73,9 @@
64 73 if (is_admin()) {
65 74 require_once dirname( __FILE__ ) . '/wp_admin.php';
66 75 $wpadmin = new WPRWPAdmin($bvsettings, $bvsiteinfo);
67 76 add_action('admin_init', array($wpadmin, 'initHandler'));
68 - add_filter('all_plugins', array($wpadmin, 'initBranding'));
77 + add_filter('all_plugins', array($wpadmin, 'initWhitelabel'));
69 78 add_filter('plugin_row_meta', array($wpadmin, 'hidePluginDetails'), 10, 2);
70 79 add_filter('debug_information', array($wpadmin, 'handlePluginHealthInfo'), 10, 1);
71 80 if ($bvsiteinfo->isMultisite()) {
72 81 add_action('network_admin_menu', array($wpadmin, 'menu'));
@@ -74,8 +83,11 @@
74 83 add_action('admin_menu', array($wpadmin, 'menu'));
75 84 }
76 85 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
77 86 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
87 +
88 + ##MG_AJAX_ACTIONS##
89 + ##POPUP_ON_DEACTIVATION##
78 90 add_action('admin_notices', array($wpadmin, 'activateWarning'));
79 91 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
80 92 ##ALPURGECACHEFUNCTION##
81 93 ##ALADMINMENU##
@@ -80,12 +92,20 @@
80 92 ##ALPURGECACHEFUNCTION##
81 93 ##ALADMINMENU##
82 94 }
83 95
84 -if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
85 - $_REQUEST = array_merge($_GET, $_POST);
96 +if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
97 + $_REQUEST = array_merge($_GET, $_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
86 98 }
87 99
100 +#Service active check
101 +if ($bvinfo->config != false) {
102 + add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
103 +}
104 +
105 +require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
106 +WPRWPPHPErrorMonitoring::init();
107 +
88 108 if ($bvinfo->hasValidDBVersion()) {
89 109 if ($bvinfo->isServiceActive('activity_log')) {
90 110 require_once dirname( __FILE__ ) . '/wp_actlog.php';
91 111 $bvconfig = $bvinfo->config;
@@ -92,74 +112,76 @@
92 112 $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
93 113 $actlog->init();
94 114 }
95 115
116 + ##MAINTENANCEMODULE##
96 117 }
97 118
98 -if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) {
119 +if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
99 120 require_once dirname( __FILE__ ) . '/callback/base.php';
100 121 require_once dirname( __FILE__ ) . '/callback/response.php';
101 122 require_once dirname( __FILE__ ) . '/callback/request.php';
102 123 require_once dirname( __FILE__ ) . '/recover.php';
103 124
104 - $pubkey = WPRAccount::sanitizeKey($_REQUEST['pubkey']);
125 + $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
126 + $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
127 + $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
105 128
106 - if (array_key_exists('rcvracc', $_REQUEST)) {
129 + if (isset($rcvracc)) {
107 130 $account = WPRRecover::find($bvsettings, $pubkey);
108 131 } else {
109 132 $account = WPRAccount::find($bvsettings, $pubkey);
110 133 }
111 134
112 - $request = new BVCallbackRequest($account, $_REQUEST);
113 - $response = new BVCallbackResponse($request->bvb64cksize);
135 + $request = new WPRCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
136 + $response = new WPRCallbackResponse($request->bvb64cksize);
114 137
115 - if ($account && (1 === $account->authenticate($request))) {
116 - define('WPRBASEPATH', plugin_dir_path(__FILE__));
138 + if ($request->authenticate() === 1) {
139 + $bv_frm_tstng = WPRHelper::getRawParam('REQUEST', 'bv_frm_tstng');
140 + if (isset($bv_frm_tstng)) {
141 + require_once dirname(__FILE__) . '/form_testing/form_testing.php';
142 + $form_testing = new BVFormTesting($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
143 + $form_testing->init();
117 144
145 + } else {
146 + define('WPRBASEPATH', plugin_dir_path(__FILE__));
118 147
119 - require_once dirname( __FILE__ ) . '/callback/handler.php';
120 148
121 - $params = $request->processParams($_REQUEST);
122 - if ($params === false) {
123 - $resp = array(
124 - "account_info" => $account->info(),
125 - "request_info" => $request->info(),
126 - "bvinfo" => $bvinfo->info(),
127 - "statusmsg" => "BVPRMS_CORRUPTED"
128 - );
129 - $response->terminate($resp);
149 + require_once dirname( __FILE__ ) . '/callback/handler.php';
150 +
151 + $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
152 + if ($params === false) {
153 + $response->terminate($request->corruptedParamsResp());
154 + }
155 + $request->params = $params;
156 + $callback_handler = new WPRCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
157 + if ($request->is_afterload) {
158 + add_action('wp_loaded', array($callback_handler, 'execute'));
159 + } else if ($request->is_admin_ajax) {
160 + add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
161 + add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
162 + } else {
163 + $callback_handler->execute();
164 + }
130 165 }
131 - $request->params = $params;
132 - $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
133 - if ($request->is_afterload) {
134 - add_action('wp_loaded', array($callback_handler, 'execute'));
135 - } else if ($request->is_admin_ajax) {
136 - add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
137 - add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
138 - } else {
139 - $callback_handler->execute();
140 - }
141 166 } else {
142 - $resp = array(
143 - "account_info" => $account ? $account->info() : array("error" => "ACCOUNT_NOT_FOUND"),
144 - "request_info" => $request->info(),
145 - "bvinfo" => $bvinfo->info(),
146 - "statusmsg" => "FAILED_AUTH",
147 - "api_pubkey" => substr(WPRAccount::getApiPublicKey($bvsettings), 0, 8),
148 - "def_sigmatch" => substr(WPRAccount::getSigMatch($request, WPRRecover::getDefaultSecret($bvsettings)), 0, 8)
149 - );
150 - $response->terminate($resp);
167 + $response->terminate($request->authFailedResp());
151 168 }
152 169 } else {
153 170 if ($bvinfo->hasValidDBVersion()) {
154 171 if ($bvinfo->isProtectModuleEnabled()) {
155 - require_once dirname( __FILE__ ) . '/protect/wp/protect.php';
156 - $bvprotect = new BVProtect($bvdb, $bvsettings);
157 - $bvprotect->init();
158 - if ($bvinfo->isActivePlugin() && !(defined( 'WP_CLI' ) && WP_CLI)) {
159 - $bvprotect->run();
172 + require_once dirname( __FILE__ ) . '/protect/protect.php';
173 + //For backward compatibility.
174 + WPRProtect_V644::$settings = new WPRWPSettings();
175 + WPRProtect_V644::$db = new WPRWPDb();
176 + WPRProtect_V644::$info = new WPRInfo(WPRProtect_V644::$settings);
177 +
178 + add_action('wpr_clear_pt_config', array('WPRProtect_V644', 'uninstall'));
179 +
180 + if ($bvinfo->isActivePlugin()) {
181 + WPRProtect_V644::init(WPRProtect_V644::MODE_WP);
182 + }
160 183 }
161 - }
162 184
163 185 if ($bvinfo->isDynSyncModuleEnabled()) {
164 186 require_once dirname( __FILE__ ) . '/wp_dynsync.php';
165 187 $bvconfig = $bvinfo->config;
@@ -192,5 +214,19 @@
192 214 if (is_admin()) {
193 215 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
194 216 }
195 217
196 -}
218 + ##THIRDPARTYCACHINGMODULE##
219 +}
220 +
221 +if (WPRWP2FA::isEnabled($bvsettings)) {
222 + $wp_2fa = new WPRWP2FA();
223 + $wp_2fa->init();
224 +}
225 +
226 +if (!empty($bvinfo->getLPWhitelabelInfo())) {
227 + $wp_login_whitelabel = new WPRWPLoginWhitelabel();
228 + $wp_login_whitelabel->init();
229 +}
230 +
231 +add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));
232 +##PLUGIN_LOADED_MODULE##