PHP 8.2.31
Preview: wfAlerts.php Size: 8.19 KB
//proc/self/root/home/nshryvcy/blissfulnepal.com/wp-content/plugins/wordfence/lib/wfAlerts.php

<?php

abstract class wfBaseAlert {

	public abstract function send();
}

class wfBlockAlert extends wfBaseAlert {

	private $IP;
	private $reason;
	private $secsToGo;


	/**
	 * wfBlockAlert constructor.
	 * @param $IP
	 * @param $reason
	 * @param $secsToGo
	 */
	public function __construct($IP, $reason, $secsToGo) {
		$this->IP = $IP;
		$this->reason = $reason;
		$this->secsToGo = $secsToGo;
	}

	public function send() {
		if (wfConfig::get('alertOn_block')) {
			$message = sprintf(/* translators: IP address. */ __('Wordfence has blocked IP address %s.', 'wordfence'), $this->IP) . "\n";
			$message .= sprintf(/* translators: Description of firewall action. */ __('The reason is: "%s".', 'wordfence'), wfWAFBlockI18n::getTranslatedBlockDescription($this->reason));
			if ($this->secsToGo > 0) {
				$message .= "\n" . sprintf(/* translators: Time until. */ __('The duration of the block is %s.', 'wordfence'), wfUtils::makeDuration($this->secsToGo, true));
			}
			wordfence::alert(sprintf(/* translators: IP address. */__('Blocking IP %s', 'wordfence'), $this->IP), $message, $this->IP);
		}
	}

}

class wfAutoUpdatedAlert extends wfBaseAlert {

	private $version;

	/**
	 * @param $version
	 */
	public function __construct($version) {
		$this->version = $version;
	}

	public function send() {
		if (wfConfig::get('alertOn_update') == '1' && $this->version) {
			wordfence::alert(sprintf(/* translators: Software version. */ __("Wordfence Upgraded to version %s", 'wordfence'), $this->version), sprintf(/* translators: Software version. */ __("Your Wordfence installation has been upgraded to version %s", 'wordfence'), $this->version), false);
		}
	}

}

class wfWafDeactivatedAlert extends wfBaseAlert {

	private $username;
	private $IP;

	/**
	 * @param $username
	 * @param $IP
	 */
	public function __construct($username, $IP) {
		$this->username = $username;
		$this->IP = $IP;
	}

	public function send() {
		if (wfConfig::get('alertOn_wafDeactivated')) {
			wordfence::alert(__('Wordfence WAF Deactivated', 'wordfence'), sprintf(/* translators: WP username. */__('A user with username "%s" deactivated the Wordfence Web Application Firewall on your WordPress site.', 'wordfence'), $this->username), $this->IP);
		}
	}

}

class wfWordfenceDeactivatedAlert extends wfBaseAlert {
	private $username;
	private $IP;

	/**
	 * @param $username
	 * @param $IP
	 */
	public function __construct($username, $IP) {
		$this->username = $username;
		$this->IP = $IP;
	}

	public function send() {
		if (wfConfig::get('alertOn_wordfenceDeactivated')) {
			wordfence::alert(__("Wordfence Deactivated", 'wordfence'), sprintf(/* translators: WP username. */ __("A user with username \"%s\" deactivated Wordfence on your WordPress site.", 'wordfence'), $this->username), $this->IP);
		}
	}

}

class wfLostPasswdFormAlert extends wfBaseAlert {

	private $user;
	private $IP;

	/**
	 * @param $user
	 * @param $IP
	 */
	public function __construct($user, $IP) {
		$this->user = $user;
		$this->IP = $IP;
	}

	public function send() {
		if (wfConfig::get('alertOn_lostPasswdForm')) {
			wordfence::alert(__("Password recovery attempted", 'wordfence'), sprintf(/* translators: Email address. */__("Someone tried to recover the password for user with email address: %s", 'wordfence'), wp_kses($this->user->user_email, array())), $this->IP);
		}
	}

}

class wfLoginLockoutAlert extends wfBaseAlert {

	private $IP;
	private $reason;

	/**
	 * @param $IP
	 * @param $reason
	 */
	public function __construct($IP, $reason) {
		$this->IP = $IP;
		$this->reason = $reason;
	}

	public function send() {
		if (wfConfig::get('alertOn_loginLockout')) {
			$message = sprintf(
				/* translators: 1. IP address. 2. Description of firewall action. */
				__('A user with IP address %1$s has been locked out from signing in or using the password recovery form for the following reason: %2$s.', 'wordfence'), $this->IP, wfWAFBlockI18n::getTranslatedBlockDescription($this->reason));
			if (wfBlock::lockoutDuration() > 0) {
				$message .= "\n" . sprintf(/* translators: Time until. */ __('The duration of the lockout is %s.', 'wordfence'), wfUtils::makeDuration(wfBlock::lockoutDuration(), true));
			}
			wordfence::alert(__('User locked out from signing in', 'wordfence'), $message, $this->IP);
		}
	}
}

class wfAdminLoginAlert extends wfBaseAlert {

	private $cookieName;
	private $username;
	private $IP;
	private $cookieValue;

	/**
	 * @param $cookieName
	 * @param $cookieValue
	 * @param $username
	 * @param $IP
	 */
	public function __construct($cookieName, $cookieValue, $username, $IP) {
		$this->cookieName = $cookieName;
		$this->cookieValue = $cookieValue;
		$this->username = $username;
		$this->IP = $IP;
	}

	public function send() {
		if (wfConfig::get('alertOn_adminLogin')) {
			$shouldAlert = true;
			$firstLogin = false;
			if (wfConfig::get('alertOn_firstAdminLoginOnly')) {
				if (isset($_COOKIE[$this->cookieName])) {
					$shouldAlert = !hash_equals($this->cookieValue, $_COOKIE[$this->cookieName]);
				}
				else {
					$firstLogin = true;
				}
			}

			if ($shouldAlert) {
				if ($firstLogin) {
					wordfence::alert(__("Admin Login", 'wordfence'), sprintf(/* translators: WP username. */ __("A user with username \"%s\" who has administrator access signed in to your WordPress site from a new device.", 'wordfence'), $this->username), $this->IP);
				}
				else {
					wordfence::alert(__("Admin Login", 'wordfence'), sprintf(/* translators: WP username. */ __("A user with username \"%s\" who has administrator access signed in to your WordPress site.", 'wordfence'), $this->username), $this->IP);
				}
			}
		}
	}
}

class wfNonAdminLoginAlert extends wfBaseAlert {

	private $cookieName;
	private $username;
	private $IP;
	private $cookieValue;

	/**
	 * @param $cookieName
	 * @param $cookieValue
	 * @param $username
	 * @param $IP
	 */
	public function __construct($cookieName, $cookieValue, $username, $IP) {
		$this->cookieName = $cookieName;
		$this->cookieValue = $cookieValue;
		$this->username = $username;
		$this->IP = $IP;
	}

	public function send() {
		if (wfConfig::get('alertOn_nonAdminLogin')) {
			$shouldAlert = true;
			$firstLogin = false;
			if (wfConfig::get('alertOn_firstNonAdminLoginOnly')) {
				if (isset($_COOKIE[$this->cookieName])) {
					$shouldAlert = !hash_equals($this->cookieValue, $_COOKIE[$this->cookieName]);
				}
				else {
					$firstLogin = true;
				}
			}

			if ($shouldAlert) {
				if ($firstLogin) {
					wordfence::alert(__("User login", 'wordfence'), sprintf(/* translators: WP username. */ __("A non-admin user with username \"%s\" signed in to your WordPress site from a new device.", 'wordfence'), $this->username), $this->IP);
				}
				else {
					wordfence::alert(__("User login", 'wordfence'), sprintf(/* translators: WP username. */ __("A non-admin user with username \"%s\" signed in to your WordPress site.", 'wordfence'), $this->username), $this->IP);
				}
			}
		}
	}
}

class wfBreachLoginAlert extends wfBaseAlert {

	private $username;
	private $lostPasswordUrl;
	private $supportUrl;
	private $IP;

	/**
	 * @param $username
	 * @param $lostPasswordUrl
	 * @param $supportUrl
	 * @param $IP
	 */
	public function __construct($username, $lostPasswordUrl, $supportUrl, $IP) {
		$this->username = $username;
		$this->lostPasswordUrl = $lostPasswordUrl;
		$this->supportUrl = $supportUrl;
		$this->IP = $IP;
	}

	public function send() {
		if (wfConfig::get('alertOn_breachLogin')) {
			wordfence::alert(__('User login blocked for insecure password', 'wordfence'), sprintf(
				/* translators: 1. WP username. 2. Reset password URL. 3. Support URL. */
				__('A user with username "%1$s" tried to sign in to your WordPress site. Access was denied because the password being used exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please change or reset the password (%2$s) to reactivate this account. Learn More: %3$s', 'wordfence'), $this->username, $this->lostPasswordUrl, $this->supportUrl), $this->IP);
		}
	}
}

class wfIncreasedAttackRateAlert extends wfBaseAlert {

	private $message;

	/**
	 * @param $message
	 */
	public function __construct($message) {
		$this->message = $message;
	}

	public function send() {
		wordfence::alert(__('Increased Attack Rate', 'wordfence'), $this->message, false);
	}
}

Directory Contents

Dirs: 4 × Files: 109

Name Size Perms Modified Actions
audit-log DIR
- drwxr-xr-x 2026-06-03 14:57:34
Edit Download
dashboard DIR
- drwxr-xr-x 2026-06-03 14:57:34
Edit Download
Diff DIR
- drwxr-xr-x 2026-06-03 14:57:34
Edit Download
rest-api DIR
- drwxr-xr-x 2026-06-03 14:57:34
Edit Download
354 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
425 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
5.63 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.85 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.39 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
8.82 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.34 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.02 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
6.62 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
8.86 MB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.17 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
580 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
4.46 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.69 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.94 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
317 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
3.07 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
4.01 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.02 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.05 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
9.15 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
3.60 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.86 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
3.33 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
10.87 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.68 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
12.49 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
38.69 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.33 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
408 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
991 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.30 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
9.80 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.64 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
185 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.51 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.47 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
9.72 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
20.55 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
8.38 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
8.19 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
10.10 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
47.13 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.02 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
3.90 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
256.83 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
9.77 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
6.02 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
25.94 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.25 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
127.17 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
6.92 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
10.29 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
4.05 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.02 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
9.25 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
352.13 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
11.49 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.13 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
66.92 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.89 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.72 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.97 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.13 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
878 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
3.23 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
303 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
266 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.80 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.70 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.56 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
29.07 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
199.14 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
5.33 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
10.95 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
9.81 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
58.47 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.27 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
5.20 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
754 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
6.70 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
8.93 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.40 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
377 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
15.98 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
127.73 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.04 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.01 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
403 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
408 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.07 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
4.09 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.77 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
11.93 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.21 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
24.95 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.14 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
27.23 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
131.69 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
15.59 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
535 B lrw-r--r-- 2026-06-03 14:57:34
Edit Download
2.22 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.47 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
1.75 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
392.60 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
3.35 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
42.60 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
28.19 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download
18.35 KB lrw-r--r-- 2026-06-03 14:57:34
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).