SILENT KILLERPanel

Current Path: > home > transcarter > public_html > wp-content > > plugins > wordfence > lib > >


Operation   : Linux host59.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
Software     : Apache
Server IP    : 198.54.126.42 | Your IP: 216.73.216.135
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/transcarter/public_html/wp-content//plugins/wordfence/lib//

NameTypeSizeLast ModifiedActions
Diff Directory - -
audit-log Directory - -
dashboard Directory - -
rest-api Directory - -
.htaccess File 354 bytes July 17 2025 21:05:48.
Diff.php File 5762 bytes July 17 2025 21:05:47.
GeoLite2-Country.mmdb File 7825225 bytes July 17 2025 21:05:48.
IPTraf.php File 1195 bytes July 17 2025 21:05:48.
IPTrafList.php File 3054 bytes July 17 2025 21:05:48.
WFLSPHP52Compatability.php File 1303 bytes July 17 2025 21:05:48.
compat.php File 425 bytes July 17 2025 21:05:47.
diffResult.php File 2874 bytes July 17 2025 21:05:47.
email_genericAlert.php File 1422 bytes July 17 2025 21:05:47.
email_newIssues.php File 9035 bytes July 17 2025 21:05:47.
email_unlockRequest.php File 2397 bytes July 17 2025 21:05:47.
email_unsubscribeRequest.php File 1077 bytes July 17 2025 21:05:47.
flags.php File 6779 bytes July 17 2025 21:05:47.
live_activity.php File 580 bytes July 17 2025 21:05:48.
menu_dashboard.php File 28671 bytes July 17 2025 21:05:48.
menu_dashboard_options.php File 15577 bytes July 17 2025 21:05:48.
menu_firewall.php File 2167 bytes July 17 2025 21:05:48.
menu_firewall_blocking.php File 10495 bytes July 17 2025 21:05:48.
menu_firewall_blocking_options.php File 4737 bytes July 17 2025 21:05:48.
menu_firewall_waf.php File 20443 bytes July 17 2025 21:05:48.
menu_firewall_waf_options.php File 11357 bytes July 17 2025 21:05:48.
menu_install.php File 1767 bytes July 17 2025 21:05:48.
menu_options.php File 25291 bytes July 17 2025 21:05:48.
menu_scanner.php File 22047 bytes July 17 2025 21:05:48.
menu_scanner_credentials.php File 2838 bytes July 17 2025 21:05:48.
menu_scanner_options.php File 8615 bytes July 17 2025 21:05:48.
menu_support.php File 18243 bytes July 17 2025 21:05:48.
menu_tools.php File 1528 bytes July 17 2025 21:05:48.
menu_tools_auditlog.php File 16829 bytes July 17 2025 21:05:48.
menu_tools_diagnostic.php File 50536 bytes July 17 2025 21:05:48.
menu_tools_importExport.php File 1310 bytes July 17 2025 21:05:48.
menu_tools_livetraffic.php File 40381 bytes July 17 2025 21:05:48.
menu_tools_twoFactor.php File 20070 bytes July 17 2025 21:05:48.
menu_tools_whois.php File 4722 bytes July 17 2025 21:05:48.
menu_wordfence_central.php File 9889 bytes July 17 2025 21:05:48.
noc1.key File 1683 bytes July 17 2025 21:05:48.
sodium_compat_fast.php File 185 bytes July 17 2025 21:05:48.
sysinfo.php File 1501 bytes July 17 2025 21:05:48.
viewFullActivityLog.php File 1501 bytes July 17 2025 21:05:48.
wf503.php File 9860 bytes July 17 2025 21:05:48.
wfAPI.php File 10338 bytes July 17 2025 21:05:48.
wfActivityReport.php File 20945 bytes July 17 2025 21:05:48.
wfAdminNoticeQueue.php File 5323 bytes July 17 2025 21:05:48.
wfAlerts.php File 7549 bytes July 17 2025 21:05:48.
wfArray.php File 1816 bytes July 17 2025 21:05:48.
wfAuditLog.php File 48265 bytes July 17 2025 21:05:48.
wfBrowscap.php File 3996 bytes July 17 2025 21:05:48.
wfBrowscapCache.php File 262994 bytes July 17 2025 21:05:48.
wfBulkCountries.php File 10002 bytes July 17 2025 21:05:48.
wfCache.php File 6166 bytes July 17 2025 21:05:48.
wfCentralAPI.php File 26419 bytes July 17 2025 21:05:48.
wfConfig.php File 125427 bytes July 17 2025 21:05:48.
wfCrawl.php File 6722 bytes July 17 2025 21:05:48.
wfCredentialsController.php File 5284 bytes July 17 2025 21:05:48.
wfCrypt.php File 4146 bytes July 17 2025 21:05:48.
wfCurlInterceptor.php File 1047 bytes July 17 2025 21:05:48.
wfDB.php File 11764 bytes July 17 2025 21:05:48.
wfDashboard.php File 8399 bytes July 17 2025 21:05:48.
wfDateLocalization.php File 360582 bytes July 17 2025 21:05:48.
wfDeactivationOption.php File 2184 bytes July 17 2025 21:05:48.
wfDiagnostic.php File 68476 bytes July 17 2025 21:05:48.
wfDict.php File 738 bytes July 17 2025 21:05:48.
wfDirectoryIterator.php File 1937 bytes July 17 2025 21:05:48.
wfFileUtils.php File 2784 bytes July 17 2025 21:05:48.
wfHelperBin.php File 2015 bytes July 17 2025 21:05:48.
wfHelperString.php File 2180 bytes July 17 2025 21:05:48.
wfIPWhitelist.php File 1596 bytes July 17 2025 21:05:48.
wfImportExportController.php File 3306 bytes July 17 2025 21:05:48.
wfInaccessibleDirectoryException.php File 303 bytes July 17 2025 21:05:48.
wfInvalidPathException.php File 266 bytes July 17 2025 21:05:48.
wfIpLocation.php File 1768 bytes July 17 2025 21:05:48.
wfIpLocator.php File 2810 bytes July 17 2025 21:05:48.
wfIssues.php File 28582 bytes July 17 2025 21:05:48.
wfJWT.php File 5455 bytes July 17 2025 21:05:48.
wfLicense.php File 10682 bytes July 17 2025 21:05:48.
wfLockedOut.php File 9959 bytes July 17 2025 21:05:48.
wfLog.php File 58480 bytes July 17 2025 21:05:48.
wfMD5BloomFilter.php File 5327 bytes July 17 2025 21:05:48.
wfModuleController.php File 754 bytes July 17 2025 21:05:48.
wfNotification.php File 6564 bytes July 17 2025 21:05:48.
wfOnboardingController.php File 9443 bytes July 17 2025 21:05:48.
wfPersistenceController.php File 819 bytes July 17 2025 21:05:48.
wfRESTAPI.php File 377 bytes July 17 2025 21:05:48.
wfScan.php File 16300 bytes July 17 2025 21:05:48.
wfScanEngine.php File 136810 bytes July 17 2025 21:05:48.
wfScanEntrypoint.php File 1070 bytes July 17 2025 21:05:48.
wfScanFile.php File 1037 bytes July 17 2025 21:05:48.
wfScanFileLink.php File 403 bytes July 17 2025 21:05:48.
wfScanFileListItem.php File 408 bytes July 17 2025 21:05:48.
wfScanFileProperties.php File 1095 bytes July 17 2025 21:05:48.
wfScanMonitor.php File 4152 bytes July 17 2025 21:05:48.
wfScanPath.php File 1817 bytes July 17 2025 21:05:48.
wfSchema.php File 11175 bytes July 17 2025 21:05:48.
wfStyle.php File 1244 bytes July 17 2025 21:05:48.
wfSupportController.php File 24758 bytes July 17 2025 21:05:48.
wfUnlockMsg.php File 1163 bytes July 17 2025 21:05:48.
wfUpdateCheck.php File 27888 bytes July 17 2025 21:05:48.
wfUtils.php File 127089 bytes July 17 2025 21:05:48.
wfVersionCheckController.php File 19729 bytes July 17 2025 21:05:48.
wfVersionSupport.php File 535 bytes July 17 2025 21:05:48.
wfView.php File 2269 bytes July 17 2025 21:05:48.
wfViewResult.php File 1455 bytes July 17 2025 21:05:48.
wfWebsite.php File 1792 bytes July 17 2025 21:05:48.
wordfenceClass.php File 447131 bytes July 17 2025 21:05:48.
wordfenceConstants.php File 3650 bytes July 17 2025 21:05:48.
wordfenceHash.php File 43726 bytes July 17 2025 21:05:48.
wordfenceScanner.php File 31200 bytes July 17 2025 21:05:48.
wordfenceURLHoover.php File 18804 bytes July 17 2025 21:05:48.

Reading File: /home/transcarter/public_html/wp-content//plugins/wordfence/lib///wfOnboardingController.php

<?php

class wfOnboardingController {
	const ONBOARDING_EMAILS = 'emails'; //New install, part 1 completed
	const ONBOARDING_LICENSE = 'license'; //New install, part 2 completed
	const ONBOARDING_SKIPPED = 'skipped'; //New install, onboarding attempt was skipped
	
	const TOUR_DASHBOARD = 'dashboard';
	const TOUR_FIREWALL = 'firewall';
	const TOUR_SCAN = 'scan';
	const TOUR_BLOCKING = 'blocking';
	const TOUR_LIVE_TRAFFIC = 'livetraffic';
	const TOUR_AUDIT_LOG = 'auditlog';
	const TOUR_LOGIN_SECURITY = 'loginsecurity';
	
	/**
	 * Sets the appropriate initial settings for an existing install so it's not forced through onboarding.
	 */
	public static function migrateOnboarding() {
		$alertEmails = wfConfig::getAlertEmails();
		$onboardingAttempt1 = wfConfig::get('onboardingAttempt1');
		$lastOnboardingVersion = wfConfig::get('onboardingLastVersion');
		if (!empty($alertEmails) && empty($onboardingAttempt1)) { //Wordfence 7.0 migration
			wfConfig::set('onboardingAttempt1', self::ONBOARDING_LICENSE); //Mark onboarding as done
			
			$keys = array(self::TOUR_DASHBOARD, self::TOUR_FIREWALL, self::TOUR_SCAN, self::TOUR_BLOCKING, self::TOUR_LIVE_TRAFFIC, self::TOUR_AUDIT_LOG);
			foreach ($keys as $k) {
				wfConfig::set('needsNewTour_' . $k, 0);
				wfConfig::set('needsUpgradeTour_' . $k, 1);
			}
			wfConfig::set('onboardingLastVersion', WORDFENCE_VERSION);
		}
		else if (!empty($alertEmails) && !empty($onboardingAttempt1) && (empty($lastOnboardingVersion) || 
				version_compare('8.0', $lastOnboardingVersion) == 1)) { //Future new tour steps can copy this block and extend
			$keys = array(self::TOUR_AUDIT_LOG);
			foreach ($keys as $k) {
				wfConfig::set('needsNewTour_' . $k, 0);
				wfConfig::set('needsUpgradeTour_' . $k, 1);
			}
			wfConfig::set('onboardingLastVersion', WORDFENCE_VERSION);
		}
	}
	
	/**
	 * Initializes the onboarding hooks.
	 * 
	 * Only called if (is_admin() && wfUtils::isAdmin()) is true.
	 */
	public static function initialize() {
		$willShowAnyTour = (self::shouldShowNewTour(self::TOUR_DASHBOARD) || self::shouldShowUpgradeTour(self::TOUR_DASHBOARD) ||
							self::shouldShowNewTour(self::TOUR_FIREWALL) || self::shouldShowUpgradeTour(self::TOUR_FIREWALL) ||
							self::shouldShowNewTour(self::TOUR_SCAN) || self::shouldShowUpgradeTour(self::TOUR_SCAN) ||
							self::shouldShowNewTour(self::TOUR_BLOCKING) || self::shouldShowUpgradeTour(self::TOUR_BLOCKING) ||
							self::shouldShowNewTour(self::TOUR_LIVE_TRAFFIC) || self::shouldShowUpgradeTour(self::TOUR_LIVE_TRAFFIC) ||
							self::shouldShowNewTour(self::TOUR_AUDIT_LOG) || self::shouldShowUpgradeTour(self::TOUR_AUDIT_LOG) ||
							self::shouldShowNewTour(self::TOUR_LOGIN_SECURITY) || self::shouldShowUpgradeTour(self::TOUR_LOGIN_SECURITY));
		if (!self::shouldShowAnyAttempt() && !$willShowAnyTour) {
			return;
		}
		
		add_action('in_admin_header', 'wfOnboardingController::_admin_header'); //Called immediately after <div id="wpcontent">
		add_action('pre_current_active_plugins', 'wfOnboardingController::_pre_plugins'); //Called immediately after <hr class="wp-header-end">
		add_action('admin_enqueue_scripts', 'wfOnboardingController::_enqueue_scripts');
	}
	
	/**
	 * Enqueues the scripts and styles we need globally on the backend for onboarding.
	 */
	public static function _enqueue_scripts() {
		$willShowAnyPluginOnboarding = (self::shouldShowAttempt1() || self::shouldShowAttempt2());
		$willShowAnyTour = (self::shouldShowNewTour(self::TOUR_DASHBOARD) || self::shouldShowUpgradeTour(self::TOUR_DASHBOARD) ||
			self::shouldShowNewTour(self::TOUR_FIREWALL) || self::shouldShowUpgradeTour(self::TOUR_FIREWALL) ||
			self::shouldShowNewTour(self::TOUR_SCAN) || self::shouldShowUpgradeTour(self::TOUR_SCAN) ||
			self::shouldShowNewTour(self::TOUR_BLOCKING) || self::shouldShowUpgradeTour(self::TOUR_BLOCKING) ||
			self::shouldShowNewTour(self::TOUR_LIVE_TRAFFIC) || self::shouldShowUpgradeTour(self::TOUR_LIVE_TRAFFIC) ||
			self::shouldShowNewTour(self::TOUR_AUDIT_LOG) || self::shouldShowUpgradeTour(self::TOUR_AUDIT_LOG) ||
			self::shouldShowNewTour(self::TOUR_LOGIN_SECURITY) || self::shouldShowUpgradeTour(self::TOUR_LOGIN_SECURITY));
		
		$page = wfUtils::array_get($_GET, 'page', '');
		if (wfUtils::isAdmin() && 
			(
				(
					$willShowAnyPluginOnboarding && preg_match('~(?:^|/)wp-admin(?:/network)?/plugins\.php~i', $_SERVER['REQUEST_URI'])
				) || 
				(
					!empty($page) && (preg_match('/^Wordfence/', $page) || preg_match('/^WFLS/', $page))
				)
			)
		) {
			self::enqueue_assets();
		}
	}

	public static function enqueue_assets() {
		wp_enqueue_style('wordfence-font', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/wf-roboto-font.css'), '', WORDFENCE_VERSION);
		wp_enqueue_style('wordfence-ionicons-style', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/wf-ionicons.css'), '', WORDFENCE_VERSION);
		wp_enqueue_style('wordfenceOnboardingCSS', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/wf-onboarding.css'), '', WORDFENCE_VERSION);
		wp_enqueue_style('wordfence-colorbox-style', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/wf-colorbox.css'), '', WORDFENCE_VERSION);
		wp_enqueue_script('jquery.wfcolorbox', wfUtils::getBaseURL() . wfUtils::versionedAsset('js/jquery.colorbox-min.js'), array('jquery'), WORDFENCE_VERSION);
	}
	
	/**
	 * Outputs the onboarding overlay if it needs to be shown on the plugins page.
	 */
	public static function _admin_header() {
		$willShowAnyTour = (self::shouldShowNewTour(self::TOUR_DASHBOARD) || self::shouldShowUpgradeTour(self::TOUR_DASHBOARD) ||
							self::shouldShowNewTour(self::TOUR_FIREWALL) || self::shouldShowUpgradeTour(self::TOUR_FIREWALL) ||
							self::shouldShowNewTour(self::TOUR_SCAN) || self::shouldShowUpgradeTour(self::TOUR_SCAN) ||
							self::shouldShowNewTour(self::TOUR_BLOCKING) || self::shouldShowUpgradeTour(self::TOUR_BLOCKING) ||
							self::shouldShowNewTour(self::TOUR_LIVE_TRAFFIC) || self::shouldShowUpgradeTour(self::TOUR_LIVE_TRAFFIC) ||
							self::shouldShowNewTour(self::TOUR_AUDIT_LOG) || self::shouldShowUpgradeTour(self::TOUR_AUDIT_LOG) ||
							self::shouldShowNewTour(self::TOUR_LOGIN_SECURITY) || self::shouldShowUpgradeTour(self::TOUR_LOGIN_SECURITY));
		
		$screen = get_current_screen();
		if ($screen->base == 'plugins' && self::shouldShowAttempt1()) {
			register_shutdown_function('wfOnboardingController::_markAttempt1Shown');
			$freshInstall = wfView::create('onboarding/fresh-install')->render(); 
			
			echo wfView::create('onboarding/overlay', array(
				'contentHTML' => $freshInstall,
			))->render();
		}
		else if (preg_match('/wordfence/i', $screen->base) && $willShowAnyTour) {
			echo wfView::create('onboarding/tour-overlay')->render();
		}
	}
	
	public static function _markAttempt1Shown() {
		wfConfig::set('onboardingAttempt1', self::ONBOARDING_SKIPPED); //Only show it once, default to skipped after outputting the first time
	}
	
	public static function shouldShowAttempt1() { //Overlay on plugin page
		if (wfConfig::get('onboardingAttempt3') == self::ONBOARDING_LICENSE) {
			return false;
		}
		
		switch (wfConfig::get('onboardingAttempt1')) {
			case self::ONBOARDING_LICENSE:
			case self::ONBOARDING_SKIPPED:
				return false;
		}
		return true;
	}
	
	public static function _pre_plugins() {
		if (self::shouldShowAttempt2()) {
			echo wfView::create('onboarding/plugin-header')->render();
		}
	}

	private static function needsApiKey() {
		$key = wfConfig::get('apiKey');
		return empty($key);
	}
	
	public static function shouldShowAttempt2() { //Header on plugin page
		if (wfConfig::get('onboardingAttempt3') == self::ONBOARDING_LICENSE) {
			return false;
		}
		
		return !wfConfig::get('onboardingAttempt2') && self::needsApiKey();
	}
	
	public static function shouldShowAttempt3($dismissable = false) {
		if (self::needsApiKey()) {
			if (!$dismissable)
				return true;
			$delayedAt = (int) wfConfig::get('onboardingDelayedAt', 0);
			if (time() - $delayedAt > 43200 /*12 hours in seconds*/)
				return true;
		}
		return false;
	}
	
	/**
	 * Whether or not to pop up attempt 3 at page load or wait for user interaction.
	 * 
	 * @return bool
	 */
	public static function shouldShowAttempt3Automatically() {
		static $_shouldShowAttempt3Automatically = null;
		if ($_shouldShowAttempt3Automatically !== null) { //We cache this so the answer remains the same for the whole request
			return $_shouldShowAttempt3Automatically;
		}
		
		if (!self::shouldShowAttempt3()) {
			$_shouldShowAttempt3Automatically = false;
			return false;
		}
		
		return $_shouldShowAttempt3Automatically = self::shouldShowAttempt3();
	}
	
	public static function willShowNewTour($page) {
		$key = 'needsNewTour_' . $page;
		return wfConfig::get($key);
	}
	
	public static function shouldShowNewTour($page) {
		$key = 'needsNewTour_' . $page;
		return (!self::shouldShowAttempt3Automatically() && !wfConfig::get('touppPromptNeeded') && wfConfig::get($key));
	}
	
	public static function willShowUpgradeTour($page) {
		$key = 'needsUpgradeTour_' . $page;
		return wfConfig::get($key);
	}
	
	public static function shouldShowUpgradeTour($page) {
		$key = 'needsUpgradeTour_' . $page;
		return (!self::shouldShowAttempt3Automatically() && !wfConfig::get('touppPromptNeeded') && wfConfig::get($key));
	}

	public static function shouldShowAnyAttempt() {
		return self::shouldShowAttempt1() || self::shouldShowAttempt2() || self::shouldShowAttempt3();
	}

}

SILENT KILLER Tool