PluginProbe
The WP Remote WordPress Plugin / 6.76
The WP Remote WordPress Plugin v6.76
6.76 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 All 54 releases
← All changes | plugin.php +90 -63 5.656.76 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.65
8 +Version: 6.76
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,15 +60,18 @@
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
63 72 ##WPCLIMODULE##
73 +
64 74 if (is_admin()) {
65 75 require_once dirname( __FILE__ ) . '/wp_admin.php';
66 76 $wpadmin = new WPRWPAdmin($bvsettings, $bvsiteinfo);
67 77 add_action('admin_init', array($wpadmin, 'initHandler'));
@@ -74,87 +84,63 @@
74 84 add_action('admin_menu', array($wpadmin, 'menu'));
75 85 }
76 86 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
77 87 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
88 +
89 + ##MG_AJAX_ACTIONS##
90 + ##POPUP_ON_DEACTIVATION##
78 91 add_action('admin_notices', array($wpadmin, 'activateWarning'));
79 92 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
80 - ##ALPURGECACHEFUNCTION##
81 - ##ALADMINMENU##
82 93 }
83 94
84 -if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
85 - $_REQUEST = array_merge($_GET, $_POST);
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
86 97 }
87 98
99 +#Service active check
100 +if ($bvinfo->config != false) {
101 + add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
102 +}
103 +
88 104 require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
89 105 WPRWPPHPErrorMonitoring::init();
90 106
107 +require_once dirname( __FILE__ ) . '/wp_actlog.php';
108 +$actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvinfo->isActivityLogActive() ? $bvinfo->config['activity_log'] : array());
109 +$actlog->init();
110 +
91 111 if ($bvinfo->hasValidDBVersion()) {
92 - if ($bvinfo->isServiceActive('activity_log')) {
93 - require_once dirname( __FILE__ ) . '/wp_actlog.php';
94 - $bvconfig = $bvinfo->config;
95 - $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
96 - $actlog->init();
97 - }
98 -
99 - if ($bvinfo->isServiceActive('maintenance_mode')) {
100 - require_once dirname( __FILE__ ). '/maintenance/wp_maintenance.php';
101 - $bvconfig = $bvinfo->config;
102 - $maintenance = new BVWPMaintenance($bvconfig['maintenance_mode']);
103 - $maintenance->init();
104 - }
105 -
112 + ##MAINTENANCEMODULE##
106 113 }
107 114
108 -if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) {
115 +if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
109 116 require_once dirname( __FILE__ ) . '/callback/base.php';
110 117 require_once dirname( __FILE__ ) . '/callback/response.php';
111 118 require_once dirname( __FILE__ ) . '/callback/request.php';
112 119 require_once dirname( __FILE__ ) . '/recover.php';
113 120
114 - $pubkey = WPRAccount::sanitizeKey($_REQUEST['pubkey']);
121 + $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
122 + $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
123 + $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
115 124
116 - if (array_key_exists('rcvracc', $_REQUEST)) {
117 - $account = WPRRecover::find($bvsettings, $pubkey);
125 + if (isset($rcvracc)) {
126 + $bvctag = WPRHelper::getRawParam('REQUEST', 'bvctag');
127 + $bvctag = isset($bvctag) ? WPRAccount::sanitizeKey($bvctag) : null;
128 + $account = WPRRecover::find($bvsettings, $pubkey, $bvctag);
118 129 } else {
119 130 $account = WPRAccount::find($bvsettings, $pubkey);
120 131 }
121 132
122 - $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings);
123 - $response = new BVCallbackResponse($request->bvb64cksize);
133 + $request = new WPRCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
134 + $response = new WPRCallbackResponse($request->bvb64cksize);
124 135
125 136 if ($request->authenticate() === 1) {
126 - if (array_key_exists('bv_ignr_frm_cptch', $_REQUEST)) {
127 - #handling of Contact Forms 7
128 - add_filter('wpcf7_skip_spam_check', '__return_true', PHP_INT_MAX, 2);
137 + $bv_frm_tstng = WPRHelper::getRawParam('REQUEST', 'bv_frm_tstng');
138 + if (isset($bv_frm_tstng)) {
139 + require_once dirname(__FILE__) . '/form_testing/form_testing.php';
140 + $form_testing = new BVFormTesting($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
141 + $form_testing->init();
129 142
130 - #handling of Formidable plugin
131 - add_filter('frm_is_field_hidden', '__return_true', PHP_INT_MAX, 3);
132 -
133 - #handling of WP Forms plugin
134 - add_filter('wpforms_process_bypass_captcha', '__return_true', PHP_INT_MAX, 3);
135 -
136 - #handling of Forminator plugin
137 - if (defined('WP_PLUGIN_DIR')) {
138 - $abstractFrontActionFilePath = WP_PLUGIN_DIR . '/forminator/library/abstracts/abstract-class-front-action.php';
139 - $frontActionFilePath = WP_PLUGIN_DIR . '/forminator/library/modules/custom-forms/front/front-action.php';
140 -
141 - if (file_exists($abstractFrontActionFilePath) && file_exists($frontActionFilePath)) {
142 - require_once $abstractFrontActionFilePath;
143 - require_once $frontActionFilePath;
144 - if (class_exists('Forminator_CForm_Front_Action')) {
145 - Forminator_CForm_Front_Action::$hidden_fields[] = "bv-stripe-";
146 - }
147 - }
148 - }
149 -
150 - #handling of CleanTalk Antispam plugin
151 - add_action('init', function() {
152 - global $apbct;
153 - if (isset($apbct) && is_object($apbct)) {
154 - $apbct->settings['forms__contact_forms_test'] = 0;
155 - }
156 - });
157 143 } else {
158 144 define('WPRBASEPATH', plugin_dir_path(__FILE__));
159 145
160 146
@@ -159,15 +145,17 @@
159 145
160 146
161 147 require_once dirname( __FILE__ ) . '/callback/handler.php';
162 148
163 - $params = $request->processParams($_REQUEST);
149 + $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
164 150 if ($params === false) {
165 151 $response->terminate($request->corruptedParamsResp());
166 152 }
167 153 $request->params = $params;
168 - $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
169 - if ($request->is_afterload) {
154 + $callback_handler = new WPRCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
155 + if ($request->is_aftershutdown) {
156 + $callback_handler->deferExecutionUntilShutdown();
157 + } else if ($request->is_afterload) {
170 158 add_action('wp_loaded', array($callback_handler, 'execute'));
171 159 } else if ($request->is_admin_ajax) {
172 160 add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
173 161 add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
@@ -181,11 +169,17 @@
181 169 } else {
182 170 if ($bvinfo->hasValidDBVersion()) {
183 171 if ($bvinfo->isProtectModuleEnabled()) {
184 172 require_once dirname( __FILE__ ) . '/protect/protect.php';
185 - add_action('clear_pt_config', array('WPRProtect_V565', 'uninstall'));
173 + //For backward compatibility.
174 + WPRProtect_V676::$settings = new WPRWPSettings();
175 + WPRProtect_V676::$db = new WPRWPDb();
176 + WPRProtect_V676::$info = new WPRInfo(WPRProtect_V676::$settings);
177 +
178 + add_action('wpr_clear_pt_config', array('WPRProtect_V676', 'uninstall'));
179 +
186 180 if ($bvinfo->isActivePlugin()) {
187 - WPRProtect_V565::init(WPRProtect_V565::MODE_WP);
181 + WPRProtect_V676::init(WPRProtect_V676::MODE_WP);
188 182 }
189 183 }
190 184
191 185 if ($bvinfo->isDynSyncModuleEnabled()) {
@@ -196,9 +190,9 @@
196 190 }
197 191
198 192 }
199 193 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
200 - if (isset($bv_site_settings)) {
194 + if (is_array($bv_site_settings)) {
201 195 if (isset($bv_site_settings['wp_auto_updates'])) {
202 196 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
203 197 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
204 198 add_filter('auto_update_core', '__return_false' );
@@ -214,8 +208,28 @@
214 208 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
215 209 add_filter('auto_update_translation', '__return_false' );
216 210 }
217 211 }
212 +
213 + if (isset($bv_site_settings['security_hardening'])) {
214 + $bv_security_hardening = $bv_site_settings['security_hardening'];
215 + if (is_array($bv_security_hardening) &&
216 + isset($bv_security_hardening['version']) &&
217 + $bv_security_hardening['version'] === 1) {
218 + if (isset($bv_security_hardening['disable_file_editor']) &&
219 + $bv_security_hardening['disable_file_editor'] === true &&
220 + !defined('DISALLOW_FILE_EDIT')) {
221 + define('DISALLOW_FILE_EDIT', true);
222 + }
223 +
224 + if (isset($bv_security_hardening['block_file_modifications']) &&
225 + $bv_security_hardening['block_file_modifications'] === true &&
226 + !defined('DISALLOW_FILE_MODS')) {
227 + define('DISALLOW_FILE_MODS', true);
228 + }
229 + }
230 + }
231 +
218 232 }
219 233
220 234 if (is_admin()) {
221 235 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
@@ -221,5 +235,18 @@
221 235 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
222 236 }
223 237
224 238 ##THIRDPARTYCACHINGMODULE##
225 -}
239 +}
240 +
241 +if (WPRWP2FA::isEnabled($bvsettings)) {
242 + $wp_2fa = new WPRWP2FA();
243 + $wp_2fa->init();
244 +}
245 +
246 +if (!empty($bvinfo->getLPWhitelabelInfo())) {
247 + $wp_login_whitelabel = new WPRWPLoginWhitelabel();
248 + $wp_login_whitelabel->init();
249 +}
250 +
251 +add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));
252 +##PLUGIN_LOADED_MODULE##