get_website_by_id( $id ); } if ( ! MainWP_System_Utility::can_edit_website( $website ) ) { return; } ?>
get_website_by_id( $id ); if ( ! MainWP_System_Utility::can_edit_website( $website ) ) { return ''; } $information = MainWP_Connect::fetch_url_authed( $website, 'security' ); /** * Filters security issues * * Filters the default security checks and enables user to disable certain checks. * * @param bool false Whether security issues should be filtered. * @param object $information Object containing data from che chid site related to security issues. * Available options: 'db_reporting', 'php_reporting'. * @param object $website Object containing child site data. * * @since 4.1 */ $filterStats = apply_filters( 'mainwp_security_issues_stats', false, $information, $website ); if ( false !== $filterStats && is_array( $filterStats ) ) { $information = array_merge( $information, $filterStats ); } return $information; } /** * Method Fix Security Issues * * Fix the selected security issue. * * @uses \MainWP\Dashboard\MainWP_Connect::fetch_url_authed() * @uses \MainWP\Dashboard\MainWP_DB::get_website_by_id() * @uses \MainWP\Dashboard\MainWP_Sync::sync_information_array() * @uses \MainWP\Dashboard\MainWP_System_Utility::can_edit_website() */ public static function fix_security_issue() { // phpcs:ignore -- NOSONAR - complex. $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : false; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended if ( ! $id ) { return ''; } $website = MainWP_DB::instance()->get_website_by_id( $id ); if ( ! MainWP_System_Utility::can_edit_website( $website ) ) { return ''; } if ( '' !== $website->sync_errors || MainWP_System_Utility::is_suspended_site( $website ) ) { return ''; } $skip_features = array( 'db_reporting', 'php_reporting', 'wp_uptodate', 'phpversion_matched', 'sslprotocol', 'debug_disabled', ); /** * Filters security issues from fixing * * Filters the default security checks and enables user to disable certain issues from being fixed by using the Fix All button. * * @param bool false Whether security issues should be filtered. * @param object $skip_features Object containing data from che chid site related to security issues. * Available options: 'db_reporting', 'php_reporting'. * @param object $website Object containing child site data. * * @since 4.1 */ $skip_features = apply_filters( 'mainwp_security_post_data', false, $skip_features, $website ); $feature = isset( $_REQUEST['feature'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['feature'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended $post_data = array( 'feature' => $feature ); if ( ! empty( $skip_features ) && is_array( $skip_features ) ) { $post_data['skip_features'] = $skip_features; } $unset_scripts = apply_filters( 'mainwp_unset_security_scripts_stylesheets', true ); if ( $unset_scripts ) { if ( ! isset( $post_data['skip_features'] ) ) { $post_data['skip_features'] = array(); } if ( ! in_array( 'versions', $post_data['skip_features'] ) ) { $post_data['skip_features'][] = 'versions'; } } $information = MainWP_Connect::fetch_url_authed( $website, 'securityFix', $post_data ); if ( isset( $information['sync'] ) && ! empty( $information['sync'] ) ) { MainWP_Sync::sync_information_array( $website, $information['sync'] ); unset( $information['sync'] ); } return $information; } /** * Method un-Fix Security Issues * * Un-Fix the selected security issue. * * @uses \MainWP\Dashboard\MainWP_Connect::fetch_url_authed() * @uses \MainWP\Dashboard\MainWP_DB::get_website_by_id() * @uses \MainWP\Dashboard\MainWP_Sync::sync_information_array() * @uses \MainWP\Dashboard\MainWP_System_Utility::can_edit_website() */ public static function unfix_security_issue() { $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : false; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended if ( ! $id ) { return ''; } $website = MainWP_DB::instance()->get_website_by_id( $id ); if ( ! MainWP_System_Utility::can_edit_website( $website ) ) { return ''; } if ( '' !== $website->sync_errors || MainWP_System_Utility::is_suspended_site( $website ) ) { return ''; } $feature = isset( $_REQUEST['feature'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['feature'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended $information = MainWP_Connect::fetch_url_authed( $website, 'securityUnFix', array( 'feature' => $feature ) ); if ( isset( $information['sync'] ) && ! empty( $information['sync'] ) ) { MainWP_Sync::sync_information_array( $website, $information['sync'] ); unset( $information['sync'] ); } return $information; } }