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 +87 -66 5.686.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.68
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'));
@@ -182,16 +170,16 @@
182 170 if ($bvinfo->hasValidDBVersion()) {
183 171 if ($bvinfo->isProtectModuleEnabled()) {
184 172 require_once dirname( __FILE__ ) . '/protect/protect.php';
185 173 //For backward compatibility.
186 - WPRProtect_V568::$settings = new WPRWPSettings();
187 - WPRProtect_V568::$db = new WPRWPDb();
188 - WPRProtect_V568::$info = new WPRInfo(WPRProtect_V568::$settings);
174 + WPRProtect_V676::$settings = new WPRWPSettings();
175 + WPRProtect_V676::$db = new WPRWPDb();
176 + WPRProtect_V676::$info = new WPRInfo(WPRProtect_V676::$settings);
189 177
190 - add_action('clear_pt_config', array('WPRProtect_V568', 'uninstall'));
178 + add_action('wpr_clear_pt_config', array('WPRProtect_V676', 'uninstall'));
191 179
192 180 if ($bvinfo->isActivePlugin()) {
193 - WPRProtect_V568::init(WPRProtect_V568::MODE_WP);
181 + WPRProtect_V676::init(WPRProtect_V676::MODE_WP);
194 182 }
195 183 }
196 184
197 185 if ($bvinfo->isDynSyncModuleEnabled()) {
@@ -202,9 +190,9 @@
202 190 }
203 191
204 192 }
205 193 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
206 - if (isset($bv_site_settings)) {
194 + if (is_array($bv_site_settings)) {
207 195 if (isset($bv_site_settings['wp_auto_updates'])) {
208 196 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
209 197 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
210 198 add_filter('auto_update_core', '__return_false' );
@@ -220,8 +208,28 @@
220 208 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
221 209 add_filter('auto_update_translation', '__return_false' );
222 210 }
223 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 +
224 232 }
225 233
226 234 if (is_admin()) {
227 235 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
@@ -227,5 +235,18 @@
227 235 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
228 236 }
229 237
230 238 ##THIRDPARTYCACHINGMODULE##
231 -}
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##