| @@ -4,9 +4,9 @@ | ||
| 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.47 | |
| 8 | +Version: 6.76 | |
| 9 | 9 | Network: True |
| 10 | 10 | License: GPLv2 or later |
| 11 | 11 | License URI: [http://www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html) |
| 12 | 12 | */ |
| @@ -69,8 +69,9 @@ | ||
| 69 | 69 | |
| 70 | 70 | ##DISABLE_OTHER_OPTIMIZATION_PLUGINS## |
| 71 | 71 | |
| 72 | 72 | ##WPCLIMODULE## |
| 73 | + | |
| 73 | 74 | if (is_admin()) { |
| 74 | 75 | require_once dirname( __FILE__ ) . '/wp_admin.php'; |
| 75 | 76 | $wpadmin = new WPRWPAdmin($bvsettings, $bvsiteinfo); |
| 76 | 77 | add_action('admin_init', array($wpadmin, 'initHandler')); |
| @@ -88,10 +89,8 @@ | ||
| 88 | 89 | ##MG_AJAX_ACTIONS## |
| 89 | 90 | ##POPUP_ON_DEACTIVATION## |
| 90 | 91 | add_action('admin_notices', array($wpadmin, 'activateWarning')); |
| 91 | 92 | add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu')); |
| 92 | - ##ALPURGECACHEFUNCTION## | |
| 93 | - ##ALADMINMENU## | |
| 94 | 93 | } |
| 95 | 94 | |
| 96 | 95 | if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended |
| 97 | 96 | $_REQUEST = array_merge($_GET, $_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended |
| @@ -104,16 +103,13 @@ | ||
| 104 | 103 | |
| 105 | 104 | require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php'; |
| 106 | 105 | WPRWPPHPErrorMonitoring::init(); |
| 107 | 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 | + | |
| 108 | 111 | if ($bvinfo->hasValidDBVersion()) { |
| 109 | - if ($bvinfo->isServiceActive('activity_log')) { | |
| 110 | - require_once dirname( __FILE__ ) . '/wp_actlog.php'; | |
| 111 | - $bvconfig = $bvinfo->config; | |
| 112 | - $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']); | |
| 113 | - $actlog->init(); | |
| 114 | - } | |
| 115 | - | |
| 116 | 112 | ##MAINTENANCEMODULE## |
| 117 | 113 | } |
| 118 | 114 | |
| 119 | 115 | if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") { |
| @@ -126,9 +122,11 @@ | ||
| 126 | 122 | $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : ''; |
| 127 | 123 | $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc'); |
| 128 | 124 | |
| 129 | 125 | if (isset($rcvracc)) { |
| 130 | - $account = WPRRecover::find($bvsettings, $pubkey); | |
| 126 | + $bvctag = WPRHelper::getRawParam('REQUEST', 'bvctag'); | |
| 127 | + $bvctag = isset($bvctag) ? WPRAccount::sanitizeKey($bvctag) : null; | |
| 128 | + $account = WPRRecover::find($bvsettings, $pubkey, $bvctag); | |
| 131 | 129 | } else { |
| 132 | 130 | $account = WPRAccount::find($bvsettings, $pubkey); |
| 133 | 131 | } |
| 134 | 132 | |
| @@ -153,9 +151,11 @@ | ||
| 153 | 151 | $response->terminate($request->corruptedParamsResp()); |
| 154 | 152 | } |
| 155 | 153 | $request->params = $params; |
| 156 | 154 | $callback_handler = new WPRCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response); |
| 157 | - if ($request->is_afterload) { | |
| 155 | + if ($request->is_aftershutdown) { | |
| 156 | + $callback_handler->deferExecutionUntilShutdown(); | |
| 157 | + } else if ($request->is_afterload) { | |
| 158 | 158 | add_action('wp_loaded', array($callback_handler, 'execute')); |
| 159 | 159 | } else if ($request->is_admin_ajax) { |
| 160 | 160 | add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser')); |
| 161 | 161 | add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser')); |
| @@ -170,16 +170,16 @@ | ||
| 170 | 170 | if ($bvinfo->hasValidDBVersion()) { |
| 171 | 171 | if ($bvinfo->isProtectModuleEnabled()) { |
| 172 | 172 | require_once dirname( __FILE__ ) . '/protect/protect.php'; |
| 173 | 173 | //For backward compatibility. |
| 174 | - WPRProtect_V647::$settings = new WPRWPSettings(); | |
| 175 | - WPRProtect_V647::$db = new WPRWPDb(); | |
| 176 | - WPRProtect_V647::$info = new WPRInfo(WPRProtect_V647::$settings); | |
| 174 | + WPRProtect_V676::$settings = new WPRWPSettings(); | |
| 175 | + WPRProtect_V676::$db = new WPRWPDb(); | |
| 176 | + WPRProtect_V676::$info = new WPRInfo(WPRProtect_V676::$settings); | |
| 177 | 177 | |
| 178 | - add_action('wpr_clear_pt_config', array('WPRProtect_V647', 'uninstall')); | |
| 178 | + add_action('wpr_clear_pt_config', array('WPRProtect_V676', 'uninstall')); | |
| 179 | 179 | |
| 180 | 180 | if ($bvinfo->isActivePlugin()) { |
| 181 | - WPRProtect_V647::init(WPRProtect_V647::MODE_WP); | |
| 181 | + WPRProtect_V676::init(WPRProtect_V676::MODE_WP); | |
| 182 | 182 | } |
| 183 | 183 | } |
| 184 | 184 | |
| 185 | 185 | if ($bvinfo->isDynSyncModuleEnabled()) { |
| @@ -190,9 +190,9 @@ | ||
| 190 | 190 | } |
| 191 | 191 | |
| 192 | 192 | } |
| 193 | 193 | $bv_site_settings = $bvsettings->getOption('bv_site_settings'); |
| 194 | - if (isset($bv_site_settings)) { | |
| 194 | + if (is_array($bv_site_settings)) { | |
| 195 | 195 | if (isset($bv_site_settings['wp_auto_updates'])) { |
| 196 | 196 | $wp_auto_updates = $bv_site_settings['wp_auto_updates']; |
| 197 | 197 | if (array_key_exists('block_auto_update_core', $wp_auto_updates)) { |
| 198 | 198 | add_filter('auto_update_core', '__return_false' ); |
| @@ -208,8 +208,28 @@ | ||
| 208 | 208 | if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) { |
| 209 | 209 | add_filter('auto_update_translation', '__return_false' ); |
| 210 | 210 | } |
| 211 | 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 | + | |
| 212 | 232 | } |
| 213 | 233 | |
| 214 | 234 | if (is_admin()) { |
| 215 | 235 | add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate')); |
| @@ -228,5 +248,5 @@ | ||
| 228 | 248 | $wp_login_whitelabel->init(); |
| 229 | 249 | } |
| 230 | 250 | |
| 231 | 251 | add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config')); |
| 232 | -##PLUGIN_LOADED_MODULE## | |
| 252 | +##PLUGIN_LOADED_MODULE## | |