| Server IP : 167.99.224.18 / Your IP : 216.73.216.136 Web Server : Apache/2.4.41 (Ubuntu) System : Linux wordpress-ubuntu-s-1vcpu-1gb-nyc1-01 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.0.25 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins-old/wp-fail2ban/feature/ |
Upload File : |
<?php declare(strict_types=1);
/**
* Blocked user functionality
*
* @package wp-fail2ban
* @since 4.4.0 Require PHP 7.4
* @since 4.0.0
*/
namespace org\lecklider\charles\wordpress\wp_fail2ban\feature;
use org\lecklider\charles\wordpress\wp_fail2ban\Config;
use org\lecklider\charles\wordpress\wp_fail2ban\Syslog;
use function org\lecklider\charles\wordpress\wp_fail2ban\bail;
defined('ABSPATH') or exit;
/**
* Catch blocked users
*
* @see \wp_authenticate()
*
* @since 4.4.0 Add type hints
* @since 4.3.4.0 Refactor to use Syslog::single
* @since 4.3.0 Add blocking username logins
* @since 3.5.0 Refactored for unit testing
* @since 2.0.0
*
* @param mixed|null $user
* @param string $username
* @param string $password
*
* @return mixed|null
*
* @wp-f2b-hard Blocked authentication attempt for .*
* @wp-f2b-soft Blocked username authentication attempt for .*
*/
function block_users($user, string $username, string $password) // : ?mixed
{
if (!empty($username)) {
if (Config::get('WP_FAIL2BAN_BLOCK_USERNAME_LOGIN')) {
if (is_email($username)) {
// OK!
} else {
Syslog::single(LOG_NOTICE, "Blocked username authentication attempt for {$username}");
do_action(__FUNCTION__.'.block_username_login', $user, $username, $password);
return bail(); // for testing
}
}
if (!empty(Config::get('WP_FAIL2BAN_BLOCKED_USERS'))) {
/**
* @since 3.5.0 Arrays allowed in PHP 7
*/
$blocked_users = Config::get('WP_FAIL2BAN_BLOCKED_USERS');
$matched = (is_array($blocked_users))
? in_array($username, $blocked_users)
: preg_match('/'.$blocked_users.'/i', $username);
if ($matched) {
Syslog::single(LOG_NOTICE, "Blocked authentication attempt for {$username}");
do_action(__FUNCTION__.'.blocked_users', $user, $username, $password);
return bail(); // for testing
}
}
}
return $user;
}