Changeset 2969897
- Timestamp:
- 09/21/2023 03:54:28 PM (18 months ago)
- Location:
- wp-fail2ban/trunk
- Files:
-
- 5 added
- 39 deleted
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
wp-fail2ban/trunk/admin/lib/about.php
r2924284 r2969897 271 271 272 272 /** 273 * li helper 274 * 275 * @since 5.2.1 276 * 277 * @param string $class_wpf2b 278 * @param string $class_dashicon 279 * @param string $blurb 280 */ 281 function li(string $class_wpf2b, string $class_dashicon, string $blurb): void 282 { 283 echo <<<HTML 284 <li><span class="wpf2b-{$class_wpf2b}"><span class="dashicons dashicons-{$class_dashicon}"></span> {$blurb}</span></li> 285 HTML; 286 } 287 288 /** 273 289 * About content 274 290 * … … 345 361 case 'good': 346 362 // OK 347 printf('<li><span class="wpf2b-ok"><span class="dashicons dashicons-yes"></span> %s</span></li>', __('Up to date.', 'wp-fail2ban'));363 li('ok', 'yes', __('Up to date.', 'wp-fail2ban')); 348 364 break; 349 365 case 'recommended': 350 printf('<li><span class="wpf2b-warning"><span class="dashicons dashicons-warning"></span> %s</span></li>', __('Unknown.', 'wp-fail2ban'));366 li('warning', 'warning', __('Status unknown.', 'wp-fail2ban')); 351 367 $run_site_health = true; 352 368 break; 353 369 case 'critical': 354 printf('<li><span class="wpf2b-error"><span class="dashicons dashicons-no"></span> %s</span></li>', __('Obsolete filter(s) found.', 'wp-fail2ban'));370 li('error', 'no', __('Obsolete filter(s) found.', 'wp-fail2ban')); 355 371 $run_site_health = true; 372 break; 373 case 'old': 374 li('warning', 'warning', __('Outdated but compatible filter(s).', 'wp-fail2ban')); 356 375 break; 357 376 } … … 362 381 } elseif ('good' == $mod['status']) { 363 382 // OK 364 printf('<li><span class="wpf2b-ok"><span class="dashicons dashicons-yes"></span> %s</span></li>', __('Not modified.', 'wp-fail2ban'));383 li('ok', 'yes', __('Not modified.', 'wp-fail2ban')); 365 384 } else { 366 printf('<li><span class="wpf2b-warning"><span class="dashicons dashicons-warning"></span> %s</span></li>', __('Modified filter(s) found.', 'wp-fail2ban'));385 li('warning', 'warning', __('Modified filter(s) found.', 'wp-fail2ban')); 367 386 $run_site_health = true; 368 387 } … … 374 393 } elseif ('good' == $mis['status']) { 375 394 // OK 376 printf('<li><span class="wpf2b-ok"><span class="dashicons dashicons-yes"></span> %s</span></li>', __('Allpresent.', 'wp-fail2ban'));395 li('ok', 'yes', __('All filters present.', 'wp-fail2ban')); 377 396 } else { 378 printf('<li><span class="wpf2b-error"><span class="dashicons dashicons-no"></span> %s</span></li>', __('Incomplete.', 'wp-fail2ban'));397 li('error', 'no', __('Incomplete.', 'wp-fail2ban')); 379 398 $run_site_health = true; 380 399 } -
wp-fail2ban/trunk/constants.php
r2950789 r2969897 13 13 14 14 if (!defined('WP_FAIL2BAN_VER')) { 15 define('WP_FAIL2BAN_VER', '5.2. 0');15 define('WP_FAIL2BAN_VER', '5.2.1'); 16 16 } 17 17 if (!defined('WP_FAIL2BAN_VER_SHORT')) { … … 31 31 } 32 32 if (!defined('WP_FAIL2BAN_VER_PATCH')) { 33 define('WP_FAIL2BAN_VER_PATCH', ' 0');33 define('WP_FAIL2BAN_VER_PATCH', '1'); 34 34 } 35 35 if (!defined('WP_FAIL2BAN_DIR')) { -
wp-fail2ban/trunk/filters.d/wordpress-extra.conf
r2950789 r2969897 1 1 # Fail2Ban filter for extra failures 2 # Auto-generated: 2023-0 8-09T16:41:11+01:002 # Auto-generated: 2023-09-21T15:50:20+01:00 3 3 # 4 4 -
wp-fail2ban/trunk/filters.d/wordpress-hard.conf
r2950789 r2969897 1 1 # Fail2Ban filter for hard failures 2 # Auto-generated: 2023-0 8-09T16:41:11+01:002 # Auto-generated: 2023-09-21T15:50:20+01:00 3 3 # 4 4 -
wp-fail2ban/trunk/filters.d/wordpress-soft.conf
r2950789 r2969897 1 1 # Fail2Ban filter for soft failures 2 # Auto-generated: 2023-0 8-09T16:41:11+01:002 # Auto-generated: 2023-09-21T15:50:20+01:00 3 3 # 4 4 -
wp-fail2ban/trunk/init.php
r2866297 r2969897 184 184 */ 185 185 if (defined('WP_FAIL2BAN_XMLRPC_LOG') && WP_FAIL2BAN_XMLRPC_LOG) { 186 xmlrpc_log(); // @codeCoverageIgnore186 feature\xmlrpc_log(); // @codeCoverageIgnore 187 187 } 188 188 /** -
wp-fail2ban/trunk/lib/hashes.php
r2950789 r2969897 6 6 * @since 5.0.0 7 7 * 8 * Auto-generated: 2023-0 8-09T16:31:04+01:008 * Auto-generated: 2023-09-20T14:30:11+01:00 9 9 */ 10 10 namespace org\lecklider\charles\wordpress\wp_fail2ban; … … 15 15 // @codeCoverageIgnoreStart 16 16 define('WP_FAIL2BAN_HASHES', array ( 17 '182bdc01a8078c27833f6fc021740b9844785b3d' => 18 array ( 19 'hard' => '5.2.0', 20 ), 21 '5601dfbf66564f260075825a36be11c3efd8a429' => 22 array ( 23 'soft' => '5.2.0', 24 ), 25 '3572d8451fc20535288530157906929ac1a7af06' => 26 array ( 27 'extra' => '5.2.0', 28 ), 17 29 'a4a5a796cd298ff861137d4c57e7e572fd2f3624' => 18 30 array ( … … 255 267 'soft' => '4.3.4.0', 256 268 ), 269 'a1da3ee89e838a9a5aa4fa21725701ba08b267ea' => 270 array ( 271 'hard' => '5.1.0.4', 272 ), 257 273 '65db493c6d82a1cf253ce11d4f49f63ad5c9ca06' => 258 274 array ( 259 275 'soft' => '5.1.0.4', 260 276 ), 261 'a1da3ee89e838a9a5aa4fa21725701ba08b267ea' =>262 array (263 'hard' => '5.1.0.4',264 ),265 277 'ed284bb74147632ced519ddbeb457aff87b1141f' => 266 278 array ( … … 387 399 'extra' => '4.2.7.1', 388 400 ), 401 'd02780e21ed306cba65bbf042accd607e6dcd8f4' => 402 array ( 403 'soft' => '5.1.0.5', 404 ), 389 405 '2871319d7a942365373aeae529db8bcfe3d54018' => 390 406 array ( 391 407 'extra' => '5.1.0.5', 392 408 ), 393 'd02780e21ed306cba65bbf042accd607e6dcd8f4' =>394 array (395 'soft' => '5.1.0.5',396 ),397 409 '9b873b82963e0be0a81c13310e3ebec910e612f8' => 398 410 array ( … … 571 583 'extra' => '5.1.1', 572 584 ), 585 '84404d97cbb9db18b47fdf48315e007982ba5443' => 586 array ( 587 'soft' => '5.1.1', 588 ), 573 589 '802c4804a6f38b003a15639f8ae1fc4f5679e0f1' => 574 590 array ( 575 591 'hard' => '5.1.1', 576 ),577 '84404d97cbb9db18b47fdf48315e007982ba5443' =>578 array (579 'soft' => '5.1.1',580 592 ), 581 593 '00d5e11958eaedeb360342d7391ae14ae4823d36' => -
wp-fail2ban/trunk/lib/loader.php
r2924284 r2969897 338 338 'misc', 339 339 'last-log', 340 'disabled']], 341 'WP_FAIL2BAN_SITE_HEALTH_SKIP_FILTERS' => [ 342 'validate' => 'boolval', 343 'unset' => false, 344 'field' => [ 345 'misc', 346 'site-health', 347 'filters', 340 348 'disabled']], 341 349 ]; -
wp-fail2ban/trunk/lib/site-health.php
r2950789 r2969897 15 15 const PREFIX = '[WP fail2ban] '; 16 16 17 const FAIL2BAN_PATHS = [ 18 '/etc/fail2ban', 19 '/usr/local/etc/fail2ban' 20 ]; 21 17 22 protected static $instance = null; 18 23 … … 30 35 } 31 36 return self::$instance; 37 } 38 39 /** 40 * Should we skip checking the filters? 41 * 42 * @since 5.2.1 43 * 44 * @return bool 45 */ 46 public static function should_skip_filters(): bool 47 { 48 if (Config::get('WP_FAIL2BAN_SITE_HEALTH_SKIP_FILTERS')) { 49 return true; 50 } 51 52 if (!empty($open_basedir = ini_get('open_basedir'))) { 53 $path = \untrailingslashit(self::get_fail2ban_path()); 54 55 return (false !== strpos($open_basedir, $path)); 56 } 57 58 return false; 32 59 } 33 60 … … 61 88 'test' => [$instance, 'get_test_fail2ban_running'] 62 89 ]; 63 if (! defined('WP_FAIL2BAN_SITE_HEALTH_SKIP_FILTERS')) {90 if (!self::should_skip_filters()) { 64 91 $tests['direct']['wp_fail2ban_filter_obsolete'] = [ 65 92 'label' => 'WP fail2ban obsolete filters', … … 75 102 ]; 76 103 } 77 $tests['direct']['wp_fail2ban_blocklist_installed'] = [ 78 'label' => 'WP fail2ban Blocklist installed', 79 'test' => [$instance, 'get_test_blocklist_installed'] 80 ]; 81 $tests['direct']['wp_fail2ban_cf7_installed'] = [ 82 'label' => 'Add-on for Contact Form 7 installed', 83 'test' => [$instance, 'get_test_cf7_installed'] 84 ]; 85 $tests['direct']['wp_fail2ban_gf_installed'] = [ 86 'label' => 'Add-on for Gravity Forms installed', 87 'test' => [$instance, 'get_test_gf_installed'] 88 ]; 104 if (!defined('WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND') || 105 ( is_array(WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND) && 106 true !== WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND['addon']['wpf2b-addon-blocklist'] ?? false)) 107 { 108 $tests['direct']['wp_fail2ban_blocklist_installed'] = [ 109 'label' => 'WP fail2ban Blocklist installed', 110 'test' => [$instance, 'get_test_blocklist_installed'] 111 ]; 112 } 113 if (!defined('WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND') || 114 ( is_array(WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND) && 115 true !== WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND['addon']['wp-fail2ban-addon-contact-form-7'] ?? false)) 116 { 117 $tests['direct']['wp_fail2ban_cf7_installed'] = [ 118 'label' => 'Add-on for Contact Form 7 installed', 119 'test' => [$instance, 'get_test_cf7_installed'] 120 ]; 121 } 122 if (!defined('WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND') || 123 ( is_array(WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND) && 124 true !== WP_FAIL2BAN_SITE_HEALTH_SKIP_RECOMMEND['addon']['wp-fail2ban-addon-gravity-forms'] ?? false)) 125 { 126 $tests['direct']['wp_fail2ban_gf_installed'] = [ 127 'label' => 'Add-on for Gravity Forms installed', 128 'test' => [$instance, 'get_test_gf_installed'] 129 ]; 130 } 89 131 90 132 return $tests; … … 230 272 231 273 } else { 232 $paths = [ 233 '/etc/fail2ban/'.$suffix, 234 '/usr/local/etc/fail2ban/'.$suffix 235 ]; 274 $paths = array_map(function ($e) use ($suffix) { 275 return trailingslashit($e).$suffix; 276 }, self::FAIL2BAN_PATHS); 236 277 237 278 foreach ($paths as $path) { … … 586 627 ); 587 628 if (count($failure['reasons'] ?? [])) { 588 $output .= ': '.join('; ', $failure['reasons']); 629 $output .= ': '.join('; ', array_map(function ($v) { 630 return rtrim($v, '.'); 631 }, $failure['reasons'])); 589 632 } 590 633 $output .= '.</li>'; … … 596 639 $results['description'] = $output; 597 640 598 } elseif (($status['old'])) { 599 $results['label'] = __('One or more of your fail2ban filters are out of date', 'wp-fail2ban'); 600 $results['status'] = 'recommended'; 601 $output = sprintf('<p>%s</p>', __('The existing <code>fail2ban</code> filters listed below will work with your current configuration. If you enable a feature added or changed since the filter version, it will not work correctly until you update the filters.', 'wp-fail2ban')); 602 $output .= '<ul>'; 603 foreach ($failures as $filter => $failure) { 604 switch ($failure['status']) { 605 case 'old': 606 $output .= '<li><span class="dashicons dashicons-info" style="color: #72aee6"></span> '.sprintf( 607 /* translators: %s: The filter name. */ 608 __('%s is from version %s', 'wp-fail2ban'), 609 "<code>wordpress-{$filter}.conf</code>", 610 $failure['version'] 611 ); 612 if (count($failure['reasons'] ?? [])) { 613 $output .= ': '.join('; ', $failure['reasons']); 614 } 615 $output .= '.</li>'; 616 break; 617 } 618 } 619 $output .= '</ul>'; 620 $output .= $this->update_filters_asap(false); 621 $results['description'] = $output; 641 } elseif ($status['old']) { 642 $results['label'] = __('One or more of your fail2ban filters are out of date, but compatible', 'wp-fail2ban'); 643 $results['description'] = __('Your filters are compatible with your current configuration. There is no need to update them at this time.', 'wp-fail2ban'); 644 $results['old'] = 'old'; 622 645 623 646 } elseif ($status['custom']) { -
wp-fail2ban/trunk/readme.txt
r2950789 r2969897 1 1 === WP fail2ban - Advanced Security Plugin === 2 2 Contributors: invisnet 3 Author URI: https://invis.net/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 04 Plugin URI: https://wp-fail2ban.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 03 Author URI: https://invis.net/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1 4 Plugin URI: https://wp-fail2ban.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1 5 5 Tags: fail2ban, login, security, syslog, brute force, protection, classicpress 6 6 Requires at least: 4.2 7 7 Tested up to: 6.3 8 Stable tag: 5.2. 08 Stable tag: 5.2.1 9 9 Requires PHP: 7.4 10 10 License: GPLv3 or later … … 15 15 == Description == 16 16 17 [fail2ban](http://www.fail2ban.org/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) is one of the simplest and most effective security measures you can implement to protect your WordPress site.17 [fail2ban](http://www.fail2ban.org/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) is one of the simplest and most effective security measures you can implement to protect your WordPress site. 18 18 19 19 *WP fail2ban* provides the link between WordPress and `fail2ban`: … … 30 30 31 31 * **Block User Enumeration** 32 One of the most common precursors to a password-guessing brute force attack is [user enumeration](https://wp-fail2ban.com/features/block-user-enumeration/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0). *WPf2b* can block it, stopping the attack before it starts.32 One of the most common precursors to a password-guessing brute force attack is [user enumeration](https://wp-fail2ban.com/features/block-user-enumeration/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). *WPf2b* can block it, stopping the attack before it starts. 33 33 34 34 * **Block username logins** … … 58 58 59 59 * **Cloudflare and Proxy Servers** 60 *WPf2b* will work with [Cloudflare](https://wp-fail2ban.com/features/cloudflare-and-proxy-servers/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0), and the Premium version will automatically update the list of Cloudflare IP addresses.60 *WPf2b* will work with [Cloudflare](https://wp-fail2ban.com/features/cloudflare-and-proxy-servers/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1), and the Premium version will automatically update the list of Cloudflare IP addresses. 61 61 You can also configure your own list of trusted proxies. 62 62 … … 69 69 70 70 * **`mu-plugins` Support** 71 *WPf2b* can easily be configured as a "must-use plugin" - see [Configuration](https://docs.wp-fail2ban.com/en/5.2/configuration.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0#mu-plugins-support).71 *WPf2b* can easily be configured as a "must-use plugin" - see [Configuration](https://docs.wp-fail2ban.com/en/5.2/configuration.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1#mu-plugins-support). 72 72 73 73 * **API to Extend *WPf2b*** … … 75 75 76 76 * **Event Hooks** [Premium] 77 Need to do something special when *WPf2b* detects a particular event? [There's a hook for that](https://docs.wp-fail2ban.com/en/5.2/developers/events.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).77 Need to do something special when *WPf2b* detects a particular event? [There's a hook for that](https://docs.wp-fail2ban.com/en/5.2/developers/events.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 78 78 79 79 = Premium = … … 91 91 1. Install via the Plugin Directory, or upload to your plugins directory. 92 92 1. Activate the plugin through the 'Plugins' menu in WordPress. 93 1. Edit `wp‑config.php` to suit your needs - see [Configuration](https://docs.wp-fail2ban.com/en/5.2/configuration.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).93 1. Edit `wp‑config.php` to suit your needs - see [Configuration](https://docs.wp-fail2ban.com/en/5.2/configuration.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 94 94 95 95 == Changelog == 96 97 = 5.2.1 = 98 * Fix bug in WAF when not logged in (h/t Rudi Diedrich). [Premium only] 99 * Site Health: Add support for `open_basedir` (h/t Jaroslav Huba). 100 * Update Freemius library. 96 101 97 102 = 5.2.0 = … … 167 172 168 173 = 4.4.0.2 = 169 * Add [`WP_FAIL2BAN_USE_AUTHPRIV`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_USE_AUTHPRIV.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) - a single place to switch to `LOG_AUTHPRIV` for systems without `LOG_AUTH`.170 * Add [`WP_FAIL2BAN_FREE_ONLY`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_FREE_ONLY.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).171 * Add [`WP_FAIL2BAN_PLUGIN_LOG_OTHER`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_PLUGIN_LOG_OTHER.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) and [`WP_FAIL2BAN_PLUGIN_OTHER_LOG`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_PLUGIN_OTHER_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.0).174 * Add [`WP_FAIL2BAN_USE_AUTHPRIV`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_USE_AUTHPRIV.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) - a single place to switch to `LOG_AUTHPRIV` for systems without `LOG_AUTH`. 175 * Add [`WP_FAIL2BAN_FREE_ONLY`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_FREE_ONLY.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 176 * Add [`WP_FAIL2BAN_PLUGIN_LOG_OTHER`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_PLUGIN_LOG_OTHER.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) and [`WP_FAIL2BAN_PLUGIN_OTHER_LOG`](https://docs.wp-fail2ban.com/en/4.4/defines/WP_FAIL2BAN_PLUGIN_OTHER_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 172 177 * Improve performance. 173 178 * Moved cron event to update trusted Cloudflare IP ranges to the Cloudflare add-on. [Premium only] … … 185 190 186 191 = 4.3.2.1 = 187 * Add support for [WP fail2ban Blocklist](https://addons.wp-fail2ban.com/blocklist/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).192 * Add support for [WP fail2ban Blocklist](https://addons.wp-fail2ban.com/blocklist/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 188 193 * Add new [Standard Configurations](https://github.com/wp-fail2ban/conf.d/). 189 194 * Improve Help links. … … 226 231 = 4.3.0.4 "Columbo" = 227 232 * Add new dashboard widget: last 5 `syslog` messages. 228 * Add full [multisite support](https://wp-fail2ban.com/features/multisite-networks/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).229 * Add [username login blocking](https://wp-fail2ban.com/features/block-username-logins/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) (force login with email).230 * Add [separate logging](https://wp-fail2ban.com/features/empty-username-logging/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) for login attempts with an empty username.231 * Improve [user enumeration blocking](https://wp-fail2ban.com/features/block-user-enumeration/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) compatibility with the WordPress block editor (Gutenberg).233 * Add full [multisite support](https://wp-fail2ban.com/features/multisite-networks/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 234 * Add [username login blocking](https://wp-fail2ban.com/features/block-username-logins/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) (force login with email). 235 * Add [separate logging](https://wp-fail2ban.com/features/empty-username-logging/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) for login attempts with an empty username. 236 * Improve [user enumeration blocking](https://wp-fail2ban.com/features/block-user-enumeration/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) compatibility with the WordPress block editor (Gutenberg). 232 237 * Bump the minimum PHP version to 5.6. 233 238 234 239 = 4.2.8 = 235 * Add link to new [support forum](https://forums.invis.net/c/wp-fail2ban/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).240 * Add link to new [support forum](https://forums.invis.net/c/wp-fail2ban/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 236 241 * Fix user enumeration conflict with Gutenberg (h/t @dinghy). 237 242 * Fix notices wrt admin menu (h/t @marioivangf). … … 247 252 248 253 = 4.2.6 = 249 * Add support for [Remote Tools](https://wp-fail2ban.com/add-ons/remote-tools/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) add-on.254 * Add support for [Remote Tools](https://wp-fail2ban.com/add-ons/remote-tools/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) add-on. 250 255 * Add support for the new ClassicPress security page. 251 256 * Improved user enumeration blocking. … … 273 278 274 279 = 4.2.1 = 275 * Completed support for [`WP_FAIL2BAN_COMMENT_EXTRA_LOG`](https://docs.wp-fail2ban.com/en/4.2/defines/WP_FAIL2BAN_COMMENT_EXTRA_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).276 * Add support for 3rd-party plugins; see [Developers](https://docs.wp-fail2ban.com/en/4.2/developers.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).280 * Completed support for [`WP_FAIL2BAN_COMMENT_EXTRA_LOG`](https://docs.wp-fail2ban.com/en/4.2/defines/WP_FAIL2BAN_COMMENT_EXTRA_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 281 * Add support for 3rd-party plugins; see [Developers](https://docs.wp-fail2ban.com/en/4.2/developers.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 277 282 * Add-on for [Contact Form 7](https://wordpress.org/plugins/wp-fail2ban-addon-contact-form-7/) (experimental). 278 283 * Add-on for [Gravity Forms](https://wordpress.org/plugins/wp-fail2ban-addon-gravity-forms/) (experimental). … … 286 291 = 4.1.0 = 287 292 * Add separate logging for REST authentication. 288 * Fix conflict with earlier versions preinstalled in `mu‑plugins`. See [Is *WPf2b* Already Installed?](https://docs.wp-fail2ban.com/en/4.1/installation.html#is-wp-fail2ban-already-installed?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).293 * Fix conflict with earlier versions preinstalled in `mu‑plugins`. See [Is *WPf2b* Already Installed?](https://docs.wp-fail2ban.com/en/4.1/installation.html#is-wp-fail2ban-already-installed?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 289 294 290 295 = 4.0.5 = 291 * Add [`WP_FAIL2BAN_COMMENT_EXTRA_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_COMMENT_EXTRA_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).292 * Add [`WP_FAIL2BAN_PINGBACK_ERROR_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PINGBACK_ERROR_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) (future functionality).296 * Add [`WP_FAIL2BAN_COMMENT_EXTRA_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_COMMENT_EXTRA_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 297 * Add [`WP_FAIL2BAN_PINGBACK_ERROR_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PINGBACK_ERROR_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) (future functionality). 293 298 * Change `WP_FAIL2BAN_LOG_SPAM` to use `LOG_NOTICE`. 294 299 * Change `WP_FAIL2BAN_SPAM_LOG` to `LOG_AUTH`. … … 304 309 * Add extra features via Freemius. **This is entirely optional.** *WPf2b* works as before, including new features listed here. 305 310 * Add settings summary page (Settings -> WP fail2ban). 306 * Add [`WP_FAIL2BAN_PASSWORD_REQUEST_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PASSWORD_REQUEST_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).307 * Add [`WP_FAIL2BAN_SPAM_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_SPAM_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).308 * Add [`WP_FAIL2BAN_LOG_COMMENTS_EXTRA`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_COMMENTS_EXTRA.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) - enable logging for attempted comments on posts which are:311 * Add [`WP_FAIL2BAN_PASSWORD_REQUEST_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PASSWORD_REQUEST_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 312 * Add [`WP_FAIL2BAN_SPAM_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_SPAM_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 313 * Add [`WP_FAIL2BAN_LOG_COMMENTS_EXTRA`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_COMMENTS_EXTRA.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) - enable logging for attempted comments on posts which are: 309 314 * not found, 310 315 * closed for commenting, … … 318 323 319 324 = 3.6.0 = 320 * The [filter files](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) are now generated from PHPDoc in the code. There were too many times when the filters were out of sync with the code (programmer error) - this should resolve that by bringing the patterns closer to the code that emits them.321 * Added [PHPUnit tests](https://docs.wp-fail2ban.com/en/4.1/tests.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0). Almost 100% code coverage, with the exception of [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.0) which is quite hard to test properly.322 * Bug-fix for [`wordpress-soft.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0#wordpress-soft-conf).323 * Add [`WP_FAIL2BAN_XMLRPC_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_XMLRPC_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).324 * Add [`WP_FAIL2BAN_REMOTE_ADDR`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_REMOTE_ADDR.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).325 * [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) now supports an array of IPs with PHP 7.326 * Moved all documentation to [https://docs.wp-fail2ban.com/](https://docs.wp-fail2ban.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).325 * The [filter files](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) are now generated from PHPDoc in the code. There were too many times when the filters were out of sync with the code (programmer error) - this should resolve that by bringing the patterns closer to the code that emits them. 326 * Added [PHPUnit tests](https://docs.wp-fail2ban.com/en/4.1/tests.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). Almost 100% code coverage, with the exception of [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) which is quite hard to test properly. 327 * Bug-fix for [`wordpress-soft.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1#wordpress-soft-conf). 328 * Add [`WP_FAIL2BAN_XMLRPC_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_XMLRPC_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 329 * Add [`WP_FAIL2BAN_REMOTE_ADDR`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_REMOTE_ADDR.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 330 * [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) now supports an array of IPs with PHP 7. 331 * Moved all documentation to [https://docs.wp-fail2ban.com/](https://docs.wp-fail2ban.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 327 332 328 333 = 3.5.3 = 329 * Bug-fix for [`wordpress-hard.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0#wordpress-hard-conf).334 * Bug-fix for [`wordpress-hard.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1#wordpress-hard-conf). 330 335 331 336 = 3.5.1 = 332 * Bug-fix for [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCK_USER_ENUMERATION.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).337 * Bug-fix for [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCK_USER_ENUMERATION.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 333 338 334 339 = 3.5.0 = 335 * Add [`WP_FAIL2BAN_OPENLOG_OPTIONS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_OPENLOG_OPTIONS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).336 * Add [`WP_FAIL2BAN_LOG_COMMENTS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_COMMENTS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) and [`WP_FAIL2BAN_COMMENT_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_COMMENT_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.0).337 * Add [`WP_FAIL2BAN_LOG_PASSWORD_REQUEST`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_PASSWORD_REQUEST.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).338 * Add [`WP_FAIL2BAN_LOG_SPAM`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_SPAM.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).339 * Add [`WP_FAIL2BAN_TRUNCATE_HOST`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_TRUNCATE_HOST.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).340 * [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) now supports an array of users with PHP 7.340 * Add [`WP_FAIL2BAN_OPENLOG_OPTIONS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_OPENLOG_OPTIONS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 341 * Add [`WP_FAIL2BAN_LOG_COMMENTS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_COMMENTS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) and [`WP_FAIL2BAN_COMMENT_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_COMMENT_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 342 * Add [`WP_FAIL2BAN_LOG_PASSWORD_REQUEST`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_PASSWORD_REQUEST.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 343 * Add [`WP_FAIL2BAN_LOG_SPAM`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_SPAM.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 344 * Add [`WP_FAIL2BAN_TRUNCATE_HOST`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_TRUNCATE_HOST.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 345 * [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) now supports an array of users with PHP 7. 341 346 342 347 = 3.0.3 = 343 * Fix regex in [`wordpress-hard.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0#wordpress-hard-conf).348 * Fix regex in [`wordpress-hard.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1#wordpress-hard-conf). 344 349 345 350 = 3.0.2 = … … 347 352 348 353 = 3.0.1 = 349 * Fix regex in [`wordpress-hard.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0#wordpress-hard-conf).354 * Fix regex in [`wordpress-hard.conf`](https://docs.wp-fail2ban.com/en/4.1/filters.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1#wordpress-hard-conf). 350 355 351 356 = 3.0.0 = 352 * Add [`WP_FAIL2BAN_SYSLOG_SHORT_TAG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_SYSLOG_SHORT_TAG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).353 * Add [`WP_FAIL2BAN_HTTP_HOST`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_HTTP_HOST.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).357 * Add [`WP_FAIL2BAN_SYSLOG_SHORT_TAG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_SYSLOG_SHORT_TAG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 358 * Add [`WP_FAIL2BAN_HTTP_HOST`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_HTTP_HOST.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 354 359 * Log XML‑RPC authentication failure. 355 360 * Add better support for MU deployment. 356 361 357 362 = 2.3.2 = 358 * Bug-fix [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).363 * Bug-fix [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 359 364 360 365 = 2.3.0 = 361 * Bug-fix in *experimental* [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) code (thanks to KyleCartmell).366 * Bug-fix in *experimental* [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) code (thanks to KyleCartmell). 362 367 363 368 = 2.2.1 = 364 * Fix stupid mistake with [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).369 * Fix stupid mistake with [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 365 370 366 371 = 2.2.0 = 367 * Custom authentication log is now called [`WP_FAIL2BAN_AUTH_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_AUTH_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).368 * Add logging for pingbacks; see [`WP_FAIL2BAN_LOG_PINGBACKS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_PINGBACKS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).369 * Custom pingback log is called [`WP_FAIL2BAN_PINGBACK_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PINGBACK_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).372 * Custom authentication log is now called [`WP_FAIL2BAN_AUTH_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_AUTH_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 373 * Add logging for pingbacks; see [`WP_FAIL2BAN_LOG_PINGBACKS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_LOG_PINGBACKS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 374 * Custom pingback log is called [`WP_FAIL2BAN_PINGBACK_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PINGBACK_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 370 375 371 376 = 2.1.1 = … … 373 378 374 379 = 2.1.0 = 375 * Add support for blocking user enumeration; see [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCK_USER_ENUMERATION.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).376 * Add support for CIDR notation in [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).380 * Add support for blocking user enumeration; see [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCK_USER_ENUMERATION.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 381 * Add support for CIDR notation in [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 377 382 378 383 = 2.0.1 = 379 * Bug-fix in *experimental* [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) code.384 * Bug-fix in *experimental* [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) code. 380 385 381 386 = 2.0.0 = 382 * Add *experimental* support for X-Forwarded-For header; see [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).383 * Add *experimental* support for regex-based login blocking; see [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).387 * Add *experimental* support for X-Forwarded-For header; see [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 388 * Add *experimental* support for regex-based login blocking; see [`WP_FAIL2BAN_BLOCKED_USERS`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCKED_USERS.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 384 389 385 390 = 1.2.1 = … … 399 404 = 5.2.0 = 400 405 This is a minor release. You do not need to update your filters from 5.1.0. 406 401 407 402 408 = 5.1.1 = … … 514 520 515 521 = 3.5.1 = 516 Bug-fix: disable [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCK_USER_ENUMERATION.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0) in admin area....522 Bug-fix: disable [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_BLOCK_USER_ENUMERATION.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1) in admin area.... 517 523 518 524 = 3.5.0 = … … 526 532 527 533 = 2.3.0 = 528 Fix for [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0); if you’re not using it you can safely skip this release.534 Fix for [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_PROXIES.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1); if you’re not using it you can safely skip this release. 529 535 530 536 = 2.2.1 = … … 532 538 533 539 = 2.2.0 = 534 BREAKING CHANGE: `WP_FAIL2BAN_LOG` has been renamed to [`WP_FAIL2BAN_AUTH_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_AUTH_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2. 0).540 BREAKING CHANGE: `WP_FAIL2BAN_LOG` has been renamed to [`WP_FAIL2BAN_AUTH_LOG`](https://docs.wp-fail2ban.com/en/4.1/defines/WP_FAIL2BAN_AUTH_LOG.html?utm_source=wordpress.org&utm_medium=readme&utm_campaign=wp-fail2ban-premium-5.2.1). 535 541 536 542 Pingbacks are getting a lot of attention recently, so *WPf2b* can now log them. -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/.gitattributes
r2950789 r2969897 12 12 *.css.map export-ignore 13 13 phpcs.xml export-ignore 14 .phpstan export-ignore 14 15 15 16 # Declare files that will always have CRLF line endings on checkout. -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/composer.lock
r2950789 r2969897 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 0fa573ee1c13c3c5edd8c3b82b81eb4a",7 "content-hash": "99f0f4dafbc26759cd76806c8416581e", 8 8 "packages": [], 9 9 "packages-dev": [ … … 87 87 }, 88 88 { 89 "name": "php-stubs/wordpress-stubs", 90 "version": "v6.2.1", 91 "source": { 92 "type": "git", 93 "url": "https://github.com/php-stubs/wordpress-stubs.git", 94 "reference": "0009429e639b748eef1c955200ea0d4e5ad5627d" 95 }, 96 "dist": { 97 "type": "zip", 98 "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/0009429e639b748eef1c955200ea0d4e5ad5627d", 99 "reference": "0009429e639b748eef1c955200ea0d4e5ad5627d", 100 "shasum": "" 101 }, 102 "require-dev": { 103 "nikic/php-parser": "< 4.12.0", 104 "php": "~7.3 || ~8.0", 105 "php-stubs/generator": "^0.8.3", 106 "phpdocumentor/reflection-docblock": "^5.3", 107 "phpstan/phpstan": "^1.10.12", 108 "phpunit/phpunit": "^9.5" 109 }, 110 "suggest": { 111 "paragonie/sodium_compat": "Pure PHP implementation of libsodium", 112 "symfony/polyfill-php73": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 113 "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan" 114 }, 115 "type": "library", 116 "notification-url": "https://packagist.org/downloads/", 117 "license": [ 118 "MIT" 119 ], 120 "description": "WordPress function and class declaration stubs for static analysis.", 121 "homepage": "https://github.com/php-stubs/wordpress-stubs", 122 "keywords": [ 123 "PHPStan", 124 "static analysis", 125 "wordpress" 126 ], 127 "support": { 128 "issues": "https://github.com/php-stubs/wordpress-stubs/issues", 129 "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.2.1" 130 }, 131 "time": "2023-05-18T04:35:23+00:00" 132 }, 133 { 134 "name": "phpcompatibility/php-compatibility", 135 "version": "9.3.5", 136 "source": { 137 "type": "git", 138 "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", 139 "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" 140 }, 141 "dist": { 142 "type": "zip", 143 "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", 144 "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", 145 "shasum": "" 146 }, 147 "require": { 148 "php": ">=5.3", 149 "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" 150 }, 151 "conflict": { 152 "squizlabs/php_codesniffer": "2.6.2" 153 }, 154 "require-dev": { 155 "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" 156 }, 157 "suggest": { 158 "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", 159 "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 160 }, 161 "type": "phpcodesniffer-standard", 162 "notification-url": "https://packagist.org/downloads/", 163 "license": [ 164 "LGPL-3.0-or-later" 165 ], 166 "authors": [ 167 { 168 "name": "Wim Godden", 169 "homepage": "https://github.com/wimg", 170 "role": "lead" 171 }, 172 { 173 "name": "Juliette Reinders Folmer", 174 "homepage": "https://github.com/jrfnl", 175 "role": "lead" 176 }, 177 { 178 "name": "Contributors", 179 "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" 180 } 181 ], 182 "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", 183 "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", 184 "keywords": [ 185 "compatibility", 186 "phpcs", 187 "standards" 188 ], 189 "support": { 190 "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", 191 "source": "https://github.com/PHPCompatibility/PHPCompatibility" 192 }, 193 "time": "2019-12-27T09:44:58+00:00" 194 }, 195 { 196 "name": "phpcompatibility/phpcompatibility-paragonie", 197 "version": "1.3.2", 198 "source": { 199 "type": "git", 200 "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", 201 "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26" 202 }, 203 "dist": { 204 "type": "zip", 205 "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/bba5a9dfec7fcfbd679cfaf611d86b4d3759da26", 206 "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26", 207 "shasum": "" 208 }, 209 "require": { 210 "phpcompatibility/php-compatibility": "^9.0" 211 }, 212 "require-dev": { 213 "dealerdirect/phpcodesniffer-composer-installer": "^0.7", 214 "paragonie/random_compat": "dev-master", 215 "paragonie/sodium_compat": "dev-master" 216 }, 217 "suggest": { 218 "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", 219 "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 220 }, 221 "type": "phpcodesniffer-standard", 222 "notification-url": "https://packagist.org/downloads/", 223 "license": [ 224 "LGPL-3.0-or-later" 225 ], 226 "authors": [ 227 { 228 "name": "Wim Godden", 229 "role": "lead" 230 }, 231 { 232 "name": "Juliette Reinders Folmer", 233 "role": "lead" 234 } 235 ], 236 "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.", 237 "homepage": "http://phpcompatibility.com/", 238 "keywords": [ 239 "compatibility", 240 "paragonie", 241 "phpcs", 242 "polyfill", 243 "standards", 244 "static analysis" 245 ], 246 "support": { 247 "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", 248 "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" 249 }, 250 "time": "2022-10-25T01:46:02+00:00" 251 }, 252 { 253 "name": "phpcompatibility/phpcompatibility-wp", 254 "version": "2.1.4", 255 "source": { 256 "type": "git", 257 "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", 258 "reference": "b6c1e3ee1c35de6c41a511d5eb9bd03e447480a5" 259 }, 260 "dist": { 261 "type": "zip", 262 "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/b6c1e3ee1c35de6c41a511d5eb9bd03e447480a5", 263 "reference": "b6c1e3ee1c35de6c41a511d5eb9bd03e447480a5", 264 "shasum": "" 265 }, 266 "require": { 267 "phpcompatibility/php-compatibility": "^9.0", 268 "phpcompatibility/phpcompatibility-paragonie": "^1.0" 269 }, 270 "require-dev": { 271 "dealerdirect/phpcodesniffer-composer-installer": "^0.7" 272 }, 273 "suggest": { 274 "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", 275 "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 276 }, 277 "type": "phpcodesniffer-standard", 278 "notification-url": "https://packagist.org/downloads/", 279 "license": [ 280 "LGPL-3.0-or-later" 281 ], 282 "authors": [ 283 { 284 "name": "Wim Godden", 285 "role": "lead" 286 }, 287 { 288 "name": "Juliette Reinders Folmer", 289 "role": "lead" 290 } 291 ], 292 "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.", 293 "homepage": "http://phpcompatibility.com/", 294 "keywords": [ 295 "compatibility", 296 "phpcs", 297 "standards", 298 "static analysis", 299 "wordpress" 300 ], 301 "support": { 302 "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", 303 "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" 304 }, 305 "time": "2022-10-24T09:00:36+00:00" 306 }, 307 { 308 "name": "phpstan/extension-installer", 309 "version": "1.3.1", 310 "source": { 311 "type": "git", 312 "url": "https://github.com/phpstan/extension-installer.git", 313 "reference": "f45734bfb9984c6c56c4486b71230355f066a58a" 314 }, 315 "dist": { 316 "type": "zip", 317 "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f45734bfb9984c6c56c4486b71230355f066a58a", 318 "reference": "f45734bfb9984c6c56c4486b71230355f066a58a", 319 "shasum": "" 320 }, 321 "require": { 322 "composer-plugin-api": "^2.0", 323 "php": "^7.2 || ^8.0", 324 "phpstan/phpstan": "^1.9.0" 325 }, 326 "require-dev": { 327 "composer/composer": "^2.0", 328 "php-parallel-lint/php-parallel-lint": "^1.2.0", 329 "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" 330 }, 331 "type": "composer-plugin", 332 "extra": { 333 "class": "PHPStan\\ExtensionInstaller\\Plugin" 334 }, 335 "autoload": { 336 "psr-4": { 337 "PHPStan\\ExtensionInstaller\\": "src/" 338 } 339 }, 340 "notification-url": "https://packagist.org/downloads/", 341 "license": [ 342 "MIT" 343 ], 344 "description": "Composer plugin for automatic installation of PHPStan extensions", 345 "support": { 346 "issues": "https://github.com/phpstan/extension-installer/issues", 347 "source": "https://github.com/phpstan/extension-installer/tree/1.3.1" 348 }, 349 "time": "2023-05-24T08:59:17+00:00" 350 }, 351 { 352 "name": "phpstan/phpstan", 353 "version": "1.10.25", 354 "source": { 355 "type": "git", 356 "url": "https://github.com/phpstan/phpstan.git", 357 "reference": "578f4e70d117f9a90699324c555922800ac38d8c" 358 }, 359 "dist": { 360 "type": "zip", 361 "url": "https://api.github.com/repos/phpstan/phpstan/zipball/578f4e70d117f9a90699324c555922800ac38d8c", 362 "reference": "578f4e70d117f9a90699324c555922800ac38d8c", 363 "shasum": "" 364 }, 365 "require": { 366 "php": "^7.2|^8.0" 367 }, 368 "conflict": { 369 "phpstan/phpstan-shim": "*" 370 }, 371 "bin": [ 372 "phpstan", 373 "phpstan.phar" 374 ], 375 "type": "library", 376 "autoload": { 377 "files": [ 378 "bootstrap.php" 379 ] 380 }, 381 "notification-url": "https://packagist.org/downloads/", 382 "license": [ 383 "MIT" 384 ], 385 "description": "PHPStan - PHP Static Analysis Tool", 386 "keywords": [ 387 "dev", 388 "static analysis" 389 ], 390 "support": { 391 "docs": "https://phpstan.org/user-guide/getting-started", 392 "forum": "https://github.com/phpstan/phpstan/discussions", 393 "issues": "https://github.com/phpstan/phpstan/issues", 394 "security": "https://github.com/phpstan/phpstan/security/policy", 395 "source": "https://github.com/phpstan/phpstan-src" 396 }, 397 "funding": [ 398 { 399 "url": "https://github.com/ondrejmirtes", 400 "type": "github" 401 }, 402 { 403 "url": "https://github.com/phpstan", 404 "type": "github" 405 }, 406 { 407 "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", 408 "type": "tidelift" 409 } 410 ], 411 "time": "2023-07-06T12:11:37+00:00" 412 }, 413 { 89 414 "name": "squizlabs/php_codesniffer", 90 415 "version": "3.7.2", … … 142 467 }, 143 468 "time": "2023-02-22T23:07:41+00:00" 469 }, 470 { 471 "name": "symfony/polyfill-php73", 472 "version": "v1.27.0", 473 "source": { 474 "type": "git", 475 "url": "https://github.com/symfony/polyfill-php73.git", 476 "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" 477 }, 478 "dist": { 479 "type": "zip", 480 "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", 481 "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", 482 "shasum": "" 483 }, 484 "require": { 485 "php": ">=7.1" 486 }, 487 "type": "library", 488 "extra": { 489 "branch-alias": { 490 "dev-main": "1.27-dev" 491 }, 492 "thanks": { 493 "name": "symfony/polyfill", 494 "url": "https://github.com/symfony/polyfill" 495 } 496 }, 497 "autoload": { 498 "files": [ 499 "bootstrap.php" 500 ], 501 "psr-4": { 502 "Symfony\\Polyfill\\Php73\\": "" 503 }, 504 "classmap": [ 505 "Resources/stubs" 506 ] 507 }, 508 "notification-url": "https://packagist.org/downloads/", 509 "license": [ 510 "MIT" 511 ], 512 "authors": [ 513 { 514 "name": "Nicolas Grekas", 515 "email": "[email protected]" 516 }, 517 { 518 "name": "Symfony Community", 519 "homepage": "https://symfony.com/contributors" 520 } 521 ], 522 "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 523 "homepage": "https://symfony.com", 524 "keywords": [ 525 "compatibility", 526 "polyfill", 527 "portable", 528 "shim" 529 ], 530 "support": { 531 "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" 532 }, 533 "funding": [ 534 { 535 "url": "https://symfony.com/sponsor", 536 "type": "custom" 537 }, 538 { 539 "url": "https://github.com/fabpot", 540 "type": "github" 541 }, 542 { 543 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 544 "type": "tidelift" 545 } 546 ], 547 "time": "2022-11-03T14:55:06+00:00" 548 }, 549 { 550 "name": "szepeviktor/phpstan-wordpress", 551 "version": "v1.3.0", 552 "source": { 553 "type": "git", 554 "url": "https://github.com/szepeviktor/phpstan-wordpress.git", 555 "reference": "5b5cc77ed51fdaf64efe3f00b5aae4b709d2cfa9" 556 }, 557 "dist": { 558 "type": "zip", 559 "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/5b5cc77ed51fdaf64efe3f00b5aae4b709d2cfa9", 560 "reference": "5b5cc77ed51fdaf64efe3f00b5aae4b709d2cfa9", 561 "shasum": "" 562 }, 563 "require": { 564 "php": "^7.2 || ^8.0", 565 "php-stubs/wordpress-stubs": "^4.7 || ^5.0 || ^6.0", 566 "phpstan/phpstan": "^1.10.0", 567 "symfony/polyfill-php73": "^1.12.0" 568 }, 569 "require-dev": { 570 "composer/composer": "^2.1.14", 571 "dealerdirect/phpcodesniffer-composer-installer": "^1.0", 572 "php-parallel-lint/php-parallel-lint": "^1.1", 573 "phpstan/phpstan-strict-rules": "^1.2", 574 "phpunit/phpunit": "^8.0 || ^9.0", 575 "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.8" 576 }, 577 "type": "phpstan-extension", 578 "extra": { 579 "phpstan": { 580 "includes": [ 581 "extension.neon" 582 ] 583 } 584 }, 585 "autoload": { 586 "psr-4": { 587 "SzepeViktor\\PHPStan\\WordPress\\": "src/" 588 } 589 }, 590 "notification-url": "https://packagist.org/downloads/", 591 "license": [ 592 "MIT" 593 ], 594 "description": "WordPress extensions for PHPStan", 595 "keywords": [ 596 "PHPStan", 597 "code analyse", 598 "code analysis", 599 "static analysis", 600 "wordpress" 601 ], 602 "support": { 603 "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", 604 "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v1.3.0" 605 }, 606 "time": "2023-04-23T06:15:06+00:00" 144 607 }, 145 608 { … … 198 661 "minimum-stability": "stable", 199 662 "stability-flags": [], 200 "prefer-stable": false,663 "prefer-stable": true, 201 664 "prefer-lowest": false, 202 665 "platform": { 203 "php": ">=5. 2"666 "php": ">=5.6" 204 667 }, 205 668 "platform-dev": [], 669 "platform-overrides": { 670 "php": "8.0" 671 }, 206 672 "plugin-api-version": "2.3.0" 207 673 } -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/includes/class-freemius.php
r2934654 r2969897 1532 1532 $this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) ); 1533 1533 1534 add_action( 'admin_init', array( &$this, '_add_trial_notice' ) ); 1535 add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) ); 1534 add_action( 'admin_init', array( &$this, '_add_trial_notice' ) ); // @phpstan-ignore-line 1535 add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) ); // @phpstan-ignore-line 1536 1536 add_action( 'admin_enqueue_scripts', array( &$this, '_enqueue_common_css' ) ); 1537 1537 … … 1643 1643 * @since 2.2.3 1644 1644 * 1645 * @return string1645 * @return void 1646 1646 */ 1647 1647 static function _prepend_fs_allow_updater_and_dialog_flag_url_param() { … … 3493 3493 */ 3494 3494 static function get_unfiltered_site_url( $blog_id = null, $strip_protocol = false, $add_trailing_slash = false ) { 3495 $url = ( ! is_multisite() && defined( 'WP_SITEURL' ) ) ? WP_SITEURL : self::get_site_url_from_wp_option( $blog_id ); 3496 3497 if ( $strip_protocol ) { 3498 $url = fs_strip_url_protocol( $url ); 3499 } 3500 3501 if ( $add_trailing_slash ) { 3502 $url = trailingslashit( $url ); 3503 } 3504 3505 return $url; 3506 } 3507 3508 /** 3509 * @author Leo Fajardo (@leorw) 3510 * @since 2.6.0 3511 * 3512 * @param int|null $blog_id 3513 * 3514 * @return string 3515 */ 3516 private static function get_site_url_from_wp_option( $blog_id = null ) { 3495 3517 global $wp_filter; 3496 3518 … … 3517 3539 $wp_filter[ $hook_name ] = $site_url_filter; 3518 3540 } 3519 }3520 3521 if ( $strip_protocol ) {3522 $url = fs_strip_url_protocol( $url );3523 }3524 3525 if ( $add_trailing_slash ) {3526 $url = trailingslashit( $url );3527 3541 } 3528 3542 … … 4081 4095 4082 4096 if ( function_exists( 'random_int' ) ) { 4083 $random = random_int( $min, $max ); 4097 $random = random_int( $min, $max ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.random_intFound 4084 4098 } else { 4085 4099 $random = rand( $min, $max ); … … 4400 4414 4401 4415 // Get the UTF encoded domain name. 4402 $domain = idn_to_ascii( $parts[1] ) . '.'; 4416 /** 4417 * @note - The check of `defined('...')` is there to account for PHP servers compiled with some older version of ICU where the constants are not defined. 4418 * @author - @swashata 4419 */ 4420 $is_new_idn_available = ( 4421 version_compare( PHP_VERSION, '5.6.40') > 0 && 4422 defined( 'IDNA_DEFAULT' ) && 4423 defined( 'INTL_IDNA_VARIANT_UTS46' ) 4424 ); 4425 if ( $is_new_idn_available ) { 4426 $domain = idn_to_ascii( $parts[1], IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46 ); 4427 } else { 4428 $domain = idn_to_ascii( $parts[1] ); // phpcs:ignore PHPCompatibility.ParameterValues.NewIDNVariantDefault.NotSet 4429 } 4430 4431 $domain = $domain . '.'; 4403 4432 4404 4433 return ( checkdnsrr( $domain, 'MX' ) || checkdnsrr( $domain, 'A' ) ); … … 5616 5645 } 5617 5646 5618 if ( $this->is_registered() ) { 5619 if ( ! $this->is_addon() ) { 5620 add_action( 5621 is_admin() ? 'admin_init' : 'init', 5622 array( &$this, '_plugin_code_type_changed' ) 5623 ); 5624 } 5625 5626 if ( $this->is_premium() ) { 5627 // Purge cached payments after switching to the premium version. 5628 // @todo This logic doesn't handle purging the cache for serviceware module upgrade. 5629 $this->get_api_user_scope()->purge_cache( "/plugins/{$this->_module_id}/payments.json?include_addons=true" ); 5630 } 5647 if ( ! $this->is_addon() ) { 5648 add_action( 5649 is_admin() ? 'admin_init' : 'init', 5650 array( &$this, '_plugin_code_type_changed' ) 5651 ); 5652 } 5653 5654 if ( $this->is_registered() && $this->is_premium() ) { 5655 // Purge cached payments after switching to the premium version. 5656 // @todo This logic doesn't handle purging the cache for serviceware module upgrade. 5657 $this->get_api_user_scope()->purge_cache( "/plugins/{$this->_module_id}/payments.json?include_addons=true" ); 5631 5658 } 5632 5659 } … … 5692 5719 } 5693 5720 5694 // Schedule code type changes event. 5695 $this->schedule_install_sync(); 5721 if ( $this->is_registered() ) { 5722 // Schedule code type changes event. 5723 $this->schedule_install_sync(); 5724 } 5696 5725 5697 5726 /** … … 9991 10020 * @param string $caller 9992 10021 * 9993 * @return string10022 * @return void 9994 10023 */ 9995 10024 function set_basename( $is_premium, $caller ) { … … 12417 12446 $install_2_blog_map = array(); 12418 12447 foreach ( $blog_2_install_map as $blog_id => $install ) { 12419 $params[] = array( 'id' => $install->id );12448 $params[] = array( 'id' => $install->id, 'url' => $install->url ); 12420 12449 12421 12450 $install_2_blog_map[ $install->id ] = $blog_id; … … 16698 16727 * @return FS_User|false 16699 16728 */ 16700 static function _get_user_by_email( $email ) {16729 public static function _get_user_by_email( $email ) { 16701 16730 self::$_static_logger->entrance(); 16702 16731 … … 17872 17901 * @param bool $redirect 17873 17902 * 17874 * @return string If redirect is `false`, returns the next page the user should be redirected to.17903 * @return void 17875 17904 */ 17876 17905 private function install_many_pending_with_user( … … 23266 23295 23267 23296 /** 23297 * Adds CSS classes for the body tag in the admin. 23298 * 23299 * @param string $classes Space-separated string of class names. 23300 * 23301 * @return string $classes FS Admin body tag class names. 23302 */ 23303 public function fs_addons_body_class( $classes ) { 23304 $classes .= ' plugins-php'; 23305 return $classes; 23306 } 23307 23308 /** 23268 23309 * Account page resources load. 23269 23310 * … … 23281 23322 wp_enqueue_script( 'plugin-install' ); 23282 23323 add_thickbox(); 23283 23284 function fs_addons_body_class( $classes ) { 23285 $classes .= ' plugins-php'; 23286 23287 return $classes; 23288 } 23289 23290 add_filter( 'admin_body_class', 'fs_addons_body_class' ); 23324 add_filter( 'admin_body_class', array( $this, 'fs_addons_body_class' ) ); 23291 23325 } 23292 23326 … … 23423 23457 wp_enqueue_script( 'plugin-install' ); 23424 23458 add_thickbox(); 23425 23426 function fs_addons_body_class( $classes ) { 23427 $classes .= ' plugins-php'; 23428 23429 return $classes; 23430 } 23431 23432 add_filter( 'admin_body_class', 'fs_addons_body_class' ); 23459 add_filter( 'admin_body_class', array( $this, 'fs_addons_body_class' ) ); 23433 23460 23434 23461 if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) { -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/includes/debug/class-fs-debug-bar-panel.php
r2018502 r2969897 11 11 } 12 12 13 /** 14 * Extends Debug Bar plugin by adding a panel to show all Freemius API requests. 15 * 16 * @author Vova Feldman (@svovaf) 17 * @since 1.1.7.3 18 * 19 * Class Freemius_Debug_Bar_Panel 20 */ 21 class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel { 22 function init() { 23 $this->title( 'Freemius' ); 24 } 13 if ( class_exists( 'Debug_Bar_Panel' ) ) { 25 14 26 static function requests_count() { 27 if ( class_exists( 'Freemius_Api_WordPress' ) ) { 28 $logger = Freemius_Api_WordPress::GetLogger(); 29 } else { 30 $logger = array(); 15 /** 16 * Extends Debug Bar plugin by adding a panel to show all Freemius API requests. 17 * 18 * @author Vova Feldman (@svovaf) 19 * @since 1.1.7.3 20 * 21 * Class Freemius_Debug_Bar_Panel 22 */ 23 class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel { 24 25 public function init() { 26 $this->title( 'Freemius' ); // @phpstan-ignore-line 31 27 } 32 28 33 return number_format( count( $logger ) ); 34 } 29 public static function requests_count() { 30 if ( class_exists( 'Freemius_Api_WordPress' ) ) { 31 $logger = Freemius_Api_WordPress::GetLogger(); 32 } else { 33 $logger = array(); 34 } 35 35 36 static function total_time() { 37 if ( class_exists( 'Freemius_Api_WordPress' ) ) { 38 $logger = Freemius_Api_WordPress::GetLogger(); 39 } else { 40 $logger = array(); 36 return number_format( count( $logger ) ); 41 37 } 42 38 43 $total_time = .0; 44 foreach ( $logger as $l ) { 45 $total_time += $l['total']; 39 public static function total_time() { 40 if ( class_exists( 'Freemius_Api_WordPress' ) ) { 41 $logger = Freemius_Api_WordPress::GetLogger(); 42 } else { 43 $logger = array(); 44 } 45 46 $total_time = .0; 47 foreach ( $logger as $l ) { 48 $total_time += $l['total']; 49 } 50 51 return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' ); 46 52 } 47 53 48 return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' ); 49 } 50 51 function render() { 52 ?> 53 <div id='debug-bar-php'> 54 <?php fs_require_template( '/debug/api-calls.php' ) ?> 55 <br> 56 <?php fs_require_template( '/debug/scheduled-crons.php' ) ?> 57 <br> 58 <?php fs_require_template( '/debug/plugins-themes-sync.php' ) ?> 59 <br> 60 <?php fs_require_template( '/debug/logger.php' ) ?> 61 </div> 62 <?php 54 public function render() { 55 ?> 56 <div id='debug-bar-php'> 57 <?php fs_require_template( '/debug/api-calls.php' ) ?> 58 <br> 59 <?php fs_require_template( '/debug/scheduled-crons.php' ) ?> 60 <br> 61 <?php fs_require_template( '/debug/plugins-themes-sync.php' ) ?> 62 <br> 63 <?php fs_require_template( '/debug/logger.php' ) ?> 64 </div> 65 <?php 66 } 63 67 } 64 68 } -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/includes/fs-core-functions.php
r2934654 r2969897 1205 1205 * @param string $slug Module slug for overrides. 1206 1206 * 1207 * @return string1207 * @return void 1208 1208 */ 1209 1209 function fs_esc_js_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) { -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusWordPress.php
r2924284 r2969897 474 474 if ( filter_var( $matches[1], FILTER_VALIDATE_IP ) ) { 475 475 if ( strlen( inet_pton( $matches[1] ) ) === 16 ) { 476 // error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.'); 477 // Hook to an action triggered just before cURL is executed to resolve the IP version to v4. 476 /** 477 * error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.'); 478 * Hook to an action triggered just before cURL is executed to resolve the IP version to v4. 479 * 480 * @phpstan-ignore-next-line 481 */ 478 482 add_action( 'http_api_curl', 'Freemius_Api_WordPress::CurlResolveToIPv4', 10, 1 ); 479 483 -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/phpcs.xml
r2950789 r2969897 93 93 https://github.com/PHPCompatibility/PHPCompatibility 94 94 --> 95 <!-- 96 <config name="testVersion" value="5.2-"/> 97 <rule ref="PHPCompatibilityWP"/> 98 --> 95 <!-- <rule ref="PHPCompatibilityWP"/> --> 99 96 97 <config name="testVersion" value="5.6-"/> 98 <rule ref="PHPCompatibility"/> 100 99 101 100 <!-- -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/start.php
r2934654 r2969897 16 16 * @var string 17 17 */ 18 $this_sdk_version = '2.5.1 0';18 $this_sdk_version = '2.5.12'; 19 19 20 20 #region SDK Selection Logic -------------------------------------------------------------------- -
wp-fail2ban/trunk/vendor/freemius/wordpress-sdk/templates/forms/license-activation.php
r2924284 r2969897 53 53 $all_sites = Freemius::get_sites(); 54 54 55 $subsite_data_by_install_id = array(); 56 $install_url_by_install_id = array(); 55 $all_site_details = array(); 56 $subsite_url_by_install_id = array(); 57 $install_url_by_install_id = array(); 57 58 58 59 foreach ( $all_sites as $site ) { … … 67 68 68 69 if ( is_object( $install ) ) { 69 if ( isset( $subsite_ data_by_install_id[ $install->id ] ) ) {70 $clone_subsite_ data = $subsite_data_by_install_id[ $install->id ];71 $clone_install_url 70 if ( isset( $subsite_url_by_install_id[ $install->id ] ) ) { 71 $clone_subsite_url = $subsite_url_by_install_id[ $install->id ]; 72 $clone_install_url = $install_url_by_install_id[ $install->id ]; 72 73 73 74 if ( … … 78 79 * @since 2.5.0 79 80 */ 80 fs_strip_url_protocol( untrailingslashit( $clone_install_url ) ) === fs_strip_url_protocol( untrailingslashit( $clone_subsite_ data['url']) ) ||81 fs_strip_url_protocol( untrailingslashit( $clone_install_url ) ) === fs_strip_url_protocol( untrailingslashit( $clone_subsite_url ) ) || 81 82 fs_strip_url_protocol( untrailingslashit( $install->url ) ) !== fs_strip_url_protocol( untrailingslashit( $site_details['url'] ) ) 82 83 ) { … … 89 90 } 90 91 91 $subsite_data_by_install_id[ $install->id ] = $site_details; 92 $install_url_by_install_id[ $install->id ] = $install->url; 93 } 92 $subsite_url_by_install_id[ $install->id ] = $site_details['url']; 93 $install_url_by_install_id[ $install->id ] = $install->url; 94 } 95 96 $all_site_details[] = $site_details; 94 97 } 95 98 … … 97 100 $vars = array( 98 101 'id' => $fs->get_id(), 99 'sites' => array_values( $subsite_data_by_install_id ),102 'sites' => $all_site_details, 100 103 'require_license_key' => true 101 104 ); -
wp-fail2ban/trunk/wp-fail2ban.php
r2950789 r2969897 5 5 * Description: Write a myriad of WordPress events to syslog for integration with fail2ban. 6 6 * Text Domain: wp-fail2ban 7 * Version: 5.2. 07 * Version: 5.2.1 8 8 * Author: Charles Lecklider 9 9 * Author URI: https://invis.net/
Note: See TracChangeset
for help on using the changeset viewer.