Changeset 3282442
- Timestamp:
- 04/26/2025 03:26:39 PM (11 months ago)
- Location:
- stop-user-enumeration
- Files:
-
- 2 deleted
- 32 edited
- 1 copied
-
tags/1.7.1 (copied) (copied from stop-user-enumeration/trunk)
-
tags/1.7.1/admin/class-admin-pages.php (modified) (1 diff)
-
tags/1.7.1/admin/class-admin-settings.php (modified) (1 diff)
-
tags/1.7.1/changelog.txt (modified) (1 diff)
-
tags/1.7.1/composer.json (modified) (1 diff)
-
tags/1.7.1/composer.lock (modified) (3 diffs)
-
tags/1.7.1/frontend/class-frontend.php (modified) (3 diffs)
-
tags/1.7.1/includes/vendor/alanef/wp_autoloader (deleted)
-
tags/1.7.1/includes/vendor/autoload.php (modified) (1 diff)
-
tags/1.7.1/includes/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
tags/1.7.1/includes/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
tags/1.7.1/includes/vendor/composer/autoload_real.php (modified) (2 diffs)
-
tags/1.7.1/includes/vendor/composer/autoload_static.php (modified) (4 diffs)
-
tags/1.7.1/includes/vendor/composer/installed.json (modified) (1 diff)
-
tags/1.7.1/includes/vendor/composer/installed.php (modified) (3 diffs)
-
tags/1.7.1/languages/stop-user-enumeration.pot (modified) (7 diffs)
-
tags/1.7.1/readme.txt (modified) (2 diffs)
-
tags/1.7.1/stop-user-enumeration.php (modified) (3 diffs)
-
trunk/admin/class-admin-pages.php (modified) (1 diff)
-
trunk/admin/class-admin-settings.php (modified) (1 diff)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/composer.json (modified) (1 diff)
-
trunk/composer.lock (modified) (3 diffs)
-
trunk/frontend/class-frontend.php (modified) (3 diffs)
-
trunk/includes/vendor/alanef/wp_autoloader (deleted)
-
trunk/includes/vendor/autoload.php (modified) (1 diff)
-
trunk/includes/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/includes/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/includes/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/includes/vendor/composer/autoload_static.php (modified) (4 diffs)
-
trunk/includes/vendor/composer/installed.json (modified) (1 diff)
-
trunk/includes/vendor/composer/installed.php (modified) (3 diffs)
-
trunk/languages/stop-user-enumeration.pot (modified) (7 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/stop-user-enumeration.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
stop-user-enumeration/tags/1.7.1/admin/class-admin-pages.php
r2638659 r3282442 26 26 27 27 public function settings_setup() { 28 $this->settings_title = esc_html__( 'Stop User Enumeration', 'stop-user-enumeration' ); 28 29 add_submenu_page( 29 30 'options-general.php', -
stop-user-enumeration/tags/1.7.1/admin/class-admin-settings.php
r3259418 r3282442 33 33 $this->plugin_name = $plugin_name; 34 34 $this->version = $version; 35 $this->settings_title = esc_html__( 'Stop User Enumeration', 'stop-user-enumeration' );36 35 parent::__construct(); 37 36 new \Fullworks_Free_Plugin_Lib\Main('stop-user-enumeration/stop-user-enumeration.php', -
stop-user-enumeration/tags/1.7.1/changelog.txt
r3259418 r3282442 1 1 == Changelog == 2 = 1.7.1 = 3 * add developer hooks and filters for extending plugin functionality 4 * added stop_user_enumeration_ip filter to allow modifying detected IP addresses 5 * added stop_user_enumeration_should_block filter to conditionally allow or block requests 6 * added stop_user_enumeration_attempt action hook for processing enumeration attempts 7 * fix doing_it_wrong notice for WP 6.8 8 2 9 = 1.7 = 3 10 * add opt in library -
stop-user-enumeration/tags/1.7.1/composer.json
r3259418 r3282442 17 17 } 18 18 }, 19 "repositories": { 20 "alanef/wp_autoloader": { 21 "type": "vcs", 22 "url": "https://github.com/alanef/wp_autoloader" 23 } 19 "autoload": { 20 "classmap": [ 21 "." 22 ] 24 23 }, 25 24 "require": { 26 25 "php": ">=7.4", 27 "alanef/wp_autoloader": "dev-main",28 26 "alanef/free_plugin_lib": "^v1.0.0", 29 27 "composer/installers": "v1.0.12" -
stop-user-enumeration/tags/1.7.1/composer.lock
r3259418 r3282442 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 187c412ec756dec2fbedebfec6885a28",7 "content-hash": "5ceeafea73cf4061b84971f875180dce", 8 8 "packages": [ 9 9 { … … 52 52 }, 53 53 "time": "2025-02-18T15:16:14+00:00" 54 },55 {56 "name": "alanef/wp_autoloader",57 "version": "dev-main",58 "source": {59 "type": "git",60 "url": "https://github.com/alanef/wp_autoloader.git",61 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d"62 },63 "dist": {64 "type": "zip",65 "url": "https://api.github.com/repos/alanef/wp_autoloader/zipball/ab82c9014dd47efbe72cb3612c2a57715bcb212d",66 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d",67 "shasum": ""68 },69 "default-branch": true,70 "type": "library",71 "autoload": {72 "psr-4": {73 "Fullworks_WP_Autoloader\\": "src/"74 }75 },76 "license": [77 "GPL-2.0-or-later"78 ],79 "authors": [80 {81 "name": "alan",82 "email": "alan@fullworks.net"83 }84 ],85 "description": "A custom autoloader to comply with WP class file names",86 "support": {87 "source": "https://github.com/alanef/wp_autoloader/tree/main",88 "issues": "https://github.com/alanef/wp_autoloader/issues"89 },90 "time": "2024-10-24T10:54:40+00:00"91 54 }, 92 55 { … … 182 145 "aliases": [], 183 146 "minimum-stability": "stable", 184 "stability-flags": { 185 "alanef/wp_autoloader": 20 186 }, 147 "stability-flags": [], 187 148 "prefer-stable": false, 188 149 "prefer-lowest": false, -
stop-user-enumeration/tags/1.7.1/frontend/class-frontend.php
r3259418 r3282442 109 109 // Get the IP address of the request 110 110 $ip = $this->get_ip(); 111 112 // Allow filtering of the IP address for integration with external services 113 $ip = apply_filters( 'stop_user_enumeration_ip', $ip ); 111 114 112 115 // Check if the IP address is valid and logging is enabled in the plugin options … … 125 128 } else { 126 129 // Fallback logging mechanism using error_log 130 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log -- fall back logging 127 131 error_log( "Attempted user enumeration from " . esc_html( $ip ) ); 128 132 } 133 134 // Action hook for add-ons to process enumeration attempts (limit login, blocklists, etc.) 135 do_action( 'stop_user_enumeration_attempt', $ip ); 129 136 } 130 137 } … … 191 198 return $access; // check not exception 192 199 } 193 $this->sue_log(); 194 195 return new WP_Error( 'rest_cannot_access', esc_html__( 'Only authenticated users can access the User endpoint REST API.', 'stop-user-enumeration' ), array( 'status' => rest_authorization_required_code() ) ); 200 201 // Get IP address for logging and filtering 202 $ip = $this->get_ip(); 203 204 // Filter to allow extensions to determine if blocking should occur 205 $should_block = apply_filters( 'stop_user_enumeration_should_block', true, $ip ); 206 207 if ( $should_block ) { 208 $this->sue_log(); 209 return new WP_Error( 'rest_cannot_access', esc_html__( 'Only authenticated users can access the User endpoint REST API.', 'stop-user-enumeration' ), array( 'status' => rest_authorization_required_code() ) ); 210 } 196 211 } 197 212 } -
stop-user-enumeration/tags/1.7.1/includes/vendor/autoload.php
r3259418 r3282442 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d::getLoader();25 return ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce::getLoader(); -
stop-user-enumeration/tags/1.7.1/includes/vendor/composer/autoload_classmap.php
r3157454 r3282442 7 7 8 8 return array( 9 'ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce' => $vendorDir . '/composer/autoload_real.php', 10 'Composer\\Autoload\\ClassLoader' => $vendorDir . '/composer/ClassLoader.php', 11 'Composer\\Autoload\\ComposerStaticInit5ceeafea73cf4061b84971f875180dce' => $vendorDir . '/composer/autoload_static.php', 9 12 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 13 'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php', 14 'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php', 15 'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php', 16 'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php', 17 'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php', 18 'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php', 19 'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php', 20 'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php', 21 'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php', 22 'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php', 23 'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php', 24 'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php', 25 'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php', 26 'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php', 27 'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php', 28 'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php', 29 'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php', 30 'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php', 31 'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php', 32 'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php', 33 'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php', 34 'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php', 35 'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php', 36 'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php', 37 'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php', 38 'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php', 39 'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php', 40 'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php', 41 'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php', 42 'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php', 43 'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php', 44 'Composer\\Installers\\Test\\CakePHPInstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php', 45 'Composer\\Installers\\Test\\InstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/InstallerTest.php', 46 'Composer\\Installers\\Test\\MediaWikiInstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php', 47 'Composer\\Installers\\Test\\PiwikInstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php', 48 'Composer\\Installers\\Test\\TestCase' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/TestCase.php', 49 'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php', 50 'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php', 51 'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php', 52 'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php', 53 'Fullworks_Free_Plugin_Lib\\Classes\\Advert' => $vendorDir . '/alanef/free_plugin_lib/src/Classes/Advert.php', 54 'Fullworks_Free_Plugin_Lib\\Classes\\Email' => $vendorDir . '/alanef/free_plugin_lib/src/Classes/Email.php', 55 'Fullworks_Free_Plugin_Lib\\Classes\\Security' => $vendorDir . '/alanef/free_plugin_lib/src/Classes/Security.php', 56 'Fullworks_Free_Plugin_Lib\\Main' => $vendorDir . '/alanef/free_plugin_lib/src/Main.php', 57 'Stop_User_Enumeration\\Admin\\Admin_Pages' => $baseDir . '/admin/class-admin-pages.php', 58 'Stop_User_Enumeration\\Admin\\Admin_Settings' => $baseDir . '/admin/class-admin-settings.php', 59 'Stop_User_Enumeration\\FrontEnd\\FrontEnd' => $baseDir . '/frontend/class-frontend.php', 60 'Stop_User_Enumeration\\Includes\\Activator' => $baseDir . '/includes/class-activator.php', 61 'Stop_User_Enumeration\\Includes\\Core' => $baseDir . '/includes/class-core.php', 62 'Stop_User_Enumeration\\Includes\\Loader' => $baseDir . '/includes/class-loader.php', 63 'Stop_User_Enumeration\\Includes\\Uninstall' => $baseDir . '/includes/class-uninstall.php', 64 'Stop_User_Enumeration\\Includes\\i18n' => $baseDir . '/includes/class-i18n.php', 10 65 ); -
stop-user-enumeration/tags/1.7.1/includes/vendor/composer/autoload_psr4.php
r3259418 r3282442 7 7 8 8 return array( 9 'Fullworks_WP_Autoloader\\' => array($vendorDir . '/alanef/wp_autoloader/src'),10 9 'Fullworks_Free_Plugin_Lib\\' => array($vendorDir . '/alanef/free_plugin_lib/src'), 11 10 ); -
stop-user-enumeration/tags/1.7.1/includes/vendor/composer/autoload_real.php
r3259418 r3282442 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d5 class ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInit5ceeafea73cf4061b84971f875180dce::getInitializer($loader)); 33 33 34 34 $loader->register(true); -
stop-user-enumeration/tags/1.7.1/includes/vendor/composer/autoload_static.php
r3259418 r3282442 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d7 class ComposerStaticInit5ceeafea73cf4061b84971f875180dce 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( 10 10 'F' => 11 11 array ( 12 'Fullworks_WP_Autoloader\\' => 24,13 12 'Fullworks_Free_Plugin_Lib\\' => 26, 14 13 ), … … 16 15 17 16 public static $prefixDirsPsr4 = array ( 18 'Fullworks_WP_Autoloader\\' =>19 array (20 0 => __DIR__ . '/..' . '/alanef/wp_autoloader/src',21 ),22 17 'Fullworks_Free_Plugin_Lib\\' => 23 18 array ( … … 37 32 38 33 public static $classMap = array ( 34 'ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce' => __DIR__ . '/..' . '/composer/autoload_real.php', 35 'Composer\\Autoload\\ClassLoader' => __DIR__ . '/..' . '/composer/ClassLoader.php', 36 'Composer\\Autoload\\ComposerStaticInit5ceeafea73cf4061b84971f875180dce' => __DIR__ . '/..' . '/composer/autoload_static.php', 39 37 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 38 'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php', 39 'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php', 40 'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php', 41 'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php', 42 'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php', 43 'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php', 44 'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php', 45 'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php', 46 'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php', 47 'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php', 48 'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php', 49 'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php', 50 'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php', 51 'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php', 52 'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php', 53 'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php', 54 'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php', 55 'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php', 56 'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php', 57 'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php', 58 'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php', 59 'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php', 60 'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php', 61 'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php', 62 'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php', 63 'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php', 64 'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php', 65 'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php', 66 'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php', 67 'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php', 68 'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php', 69 'Composer\\Installers\\Test\\CakePHPInstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php', 70 'Composer\\Installers\\Test\\InstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/InstallerTest.php', 71 'Composer\\Installers\\Test\\MediaWikiInstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php', 72 'Composer\\Installers\\Test\\PiwikInstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php', 73 'Composer\\Installers\\Test\\TestCase' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/TestCase.php', 74 'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php', 75 'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php', 76 'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php', 77 'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php', 78 'Fullworks_Free_Plugin_Lib\\Classes\\Advert' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Classes/Advert.php', 79 'Fullworks_Free_Plugin_Lib\\Classes\\Email' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Classes/Email.php', 80 'Fullworks_Free_Plugin_Lib\\Classes\\Security' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Classes/Security.php', 81 'Fullworks_Free_Plugin_Lib\\Main' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Main.php', 82 'Stop_User_Enumeration\\Admin\\Admin_Pages' => __DIR__ . '/../../..' . '/admin/class-admin-pages.php', 83 'Stop_User_Enumeration\\Admin\\Admin_Settings' => __DIR__ . '/../../..' . '/admin/class-admin-settings.php', 84 'Stop_User_Enumeration\\FrontEnd\\FrontEnd' => __DIR__ . '/../../..' . '/frontend/class-frontend.php', 85 'Stop_User_Enumeration\\Includes\\Activator' => __DIR__ . '/../../..' . '/includes/class-activator.php', 86 'Stop_User_Enumeration\\Includes\\Core' => __DIR__ . '/../../..' . '/includes/class-core.php', 87 'Stop_User_Enumeration\\Includes\\Loader' => __DIR__ . '/../../..' . '/includes/class-loader.php', 88 'Stop_User_Enumeration\\Includes\\Uninstall' => __DIR__ . '/../../..' . '/includes/class-uninstall.php', 89 'Stop_User_Enumeration\\Includes\\i18n' => __DIR__ . '/../../..' . '/includes/class-i18n.php', 40 90 ); 41 91 … … 43 93 { 44 94 return \Closure::bind(function () use ($loader) { 45 $loader->prefixLengthsPsr4 = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$prefixLengthsPsr4;46 $loader->prefixDirsPsr4 = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$prefixDirsPsr4;47 $loader->prefixesPsr0 = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$prefixesPsr0;48 $loader->classMap = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$classMap;95 $loader->prefixLengthsPsr4 = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$prefixLengthsPsr4; 96 $loader->prefixDirsPsr4 = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$prefixDirsPsr4; 97 $loader->prefixesPsr0 = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$prefixesPsr0; 98 $loader->classMap = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$classMap; 49 99 50 100 }, null, ClassLoader::class); -
stop-user-enumeration/tags/1.7.1/includes/vendor/composer/installed.json
r3259418 r3282442 49 49 }, 50 50 "install-path": "../alanef/free_plugin_lib" 51 },52 {53 "name": "alanef/wp_autoloader",54 "version": "dev-main",55 "version_normalized": "dev-main",56 "source": {57 "type": "git",58 "url": "https://github.com/alanef/wp_autoloader.git",59 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d"60 },61 "dist": {62 "type": "zip",63 "url": "https://api.github.com/repos/alanef/wp_autoloader/zipball/ab82c9014dd47efbe72cb3612c2a57715bcb212d",64 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d",65 "shasum": ""66 },67 "time": "2024-10-24T10:54:40+00:00",68 "default-branch": true,69 "type": "library",70 "installation-source": "dist",71 "autoload": {72 "psr-4": {73 "Fullworks_WP_Autoloader\\": "src/"74 }75 },76 "license": [77 "GPL-2.0-or-later"78 ],79 "authors": [80 {81 "name": "alan",82 "email": "alan@fullworks.net"83 }84 ],85 "description": "A custom autoloader to comply with WP class file names",86 "support": {87 "source": "https://github.com/alanef/wp_autoloader/tree/main",88 "issues": "https://github.com/alanef/wp_autoloader/issues"89 },90 "install-path": "../alanef/wp_autoloader"91 51 }, 92 52 { -
stop-user-enumeration/tags/1.7.1/includes/vendor/composer/installed.php
r3259418 r3282442 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' 1f9d8726d88cd70e9fc59f7461034796df8ce1a2',6 'reference' => 'df3c3d40306aa96fb00e8506f9aeba9ba9a477a1', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../../', … … 20 20 'dev_requirement' => false, 21 21 ), 22 'alanef/wp_autoloader' => array(23 'pretty_version' => 'dev-main',24 'version' => 'dev-main',25 'reference' => 'ab82c9014dd47efbe72cb3612c2a57715bcb212d',26 'type' => 'library',27 'install_path' => __DIR__ . '/../alanef/wp_autoloader',28 'aliases' => array(29 0 => '9999999-dev',30 ),31 'dev_requirement' => false,32 ),33 22 'composer/installers' => array( 34 23 'pretty_version' => 'v1.0.12', … … 43 32 'pretty_version' => 'dev-main', 44 33 'version' => 'dev-main', 45 'reference' => ' 1f9d8726d88cd70e9fc59f7461034796df8ce1a2',34 'reference' => 'df3c3d40306aa96fb00e8506f9aeba9ba9a477a1', 46 35 'type' => 'wordpress-plugin', 47 36 'install_path' => __DIR__ . '/../../../', -
stop-user-enumeration/tags/1.7.1/languages/stop-user-enumeration.pot
r3259418 r3282442 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Stop User Enumeration 1.7 \n"5 "Project-Id-Version: Stop User Enumeration 1.7.1\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/stop-user-enumeration\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2025-0 3-20T17:26:47+00:00\n"12 "POT-Creation-Date: 2025-04-26T15:20:35+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.10.0\n" … … 17 17 #. Plugin Name of the plugin 18 18 #: stop-user-enumeration.php 19 #: admin/class-admin- settings.php:3519 #: admin/class-admin-pages.php:28 20 20 msgid "Stop User Enumeration" 21 21 msgstr "" … … 41 41 msgstr "" 42 42 43 #: admin/class-admin-pages.php:15 643 #: admin/class-admin-pages.php:157 44 44 msgid "Save Options" 45 45 msgstr "" 46 46 47 #: admin/class-admin-pages.php:18 247 #: admin/class-admin-pages.php:183 48 48 msgid "Save" 49 49 msgstr "" 50 50 51 #: admin/class-admin-pages.php:19 351 #: admin/class-admin-pages.php:194 52 52 msgid "Settings reset to defaults." 53 53 msgstr "" 54 54 55 #: admin/class-admin-settings.php:9 155 #: admin/class-admin-settings.php:95 56 56 msgid "Information" 57 57 msgstr "" 58 58 59 #: admin/class-admin-settings.php: 9959 #: admin/class-admin-settings.php:103 60 60 msgid "Options" 61 61 msgstr "" 62 62 63 #: admin/class-admin-settings.php:11 363 #: admin/class-admin-settings.php:118 64 64 msgid "About this Plugin" 65 65 msgstr "" 66 66 67 #: admin/class-admin-settings.php:1 1567 #: admin/class-admin-settings.php:120 68 68 msgid "Stop User Enumeration detects attempts by malicious scanners to identify your users" 69 69 msgstr "" 70 70 71 #: admin/class-admin-settings.php:1 1971 #: admin/class-admin-settings.php:124 72 72 msgid "" 73 73 "If a bot or user is caught scanning for user names they are denied access and their IP is\n" … … 75 75 msgstr "" 76 76 77 #: admin/class-admin-settings.php:1 2877 #: admin/class-admin-settings.php:133 78 78 msgid "" 79 79 "When you are viewing an admin page, the plugin does nothing, this is designed this way as it is\n" … … 81 81 msgstr "" 82 82 83 #: admin/class-admin-settings.php:1 3783 #: admin/class-admin-settings.php:142 84 84 msgid "" 85 85 "This plugin is best used in conjunction with a blocking tool to exclude the IP for longer. If you\n" … … 87 87 msgstr "" 88 88 89 #: admin/class-admin-settings.php:1 4589 #: admin/class-admin-settings.php:150 90 90 msgid "Also note: It is very common for users to leave their Display Name and Nickname the same as their Username, in which case the Username is leaked by so many things. Best to check at least your admins don't do this" 91 91 msgstr "" 92 92 93 #: admin/class-admin-settings.php: 19893 #: admin/class-admin-settings.php:203 94 94 msgid "Stop REST API User calls" 95 95 msgstr "" 96 96 97 #: admin/class-admin-settings.php:2 0597 #: admin/class-admin-settings.php:210 98 98 msgid "WordPress allows anyone to find users by API call, by checking this box the calls will be restricted to logged in users only. Only untick this box if you need to allow unfettered API access to users" 99 99 msgstr "" 100 100 101 #: admin/class-admin-settings.php:21 0101 #: admin/class-admin-settings.php:215 102 102 msgid "Stop oEmbed calls revealing user ids" 103 103 msgstr "" 104 104 105 #: admin/class-admin-settings.php:2 17105 #: admin/class-admin-settings.php:222 106 106 msgid "WordPress reveals the user login ID through oEmbed calls by including the Author Archive link which contains the user id. When in many cases just the Author Name is enough. Note: remember it is not good idea to have login user id equal to your display name" 107 107 msgstr "" 108 108 109 #: admin/class-admin-settings.php:22 2109 #: admin/class-admin-settings.php:227 110 110 msgid "Disable WP Core Author sitemaps" 111 111 msgstr "" 112 112 113 #: admin/class-admin-settings.php:2 29113 #: admin/class-admin-settings.php:234 114 114 msgid "WordPress provides sitemaps for built-in content types like pages and author archives out of the box. The Author sitemap exposes the user id." 115 115 msgstr "" 116 116 117 #: admin/class-admin-settings.php:23 4117 #: admin/class-admin-settings.php:239 118 118 msgid "log attempts to AUTH LOG" 119 119 msgstr "" 120 120 121 121 #. translators: leave place holders 122 #: admin/class-admin-settings.php:24 4122 #: admin/class-admin-settings.php:249 123 123 msgid "Leave this ticked if you are using %1$sFail2Ban%2$s on your VPS to block attempts at enumeration.%3$s If you are not running Fail2Ban or on a shared host this does not need to be ticked, however it normally will not cause a problem being ticked." 124 124 msgstr "" 125 125 126 #: admin/class-admin-settings.php:2 57126 #: admin/class-admin-settings.php:262 127 127 msgid "Remove numbers from comment authors" 128 128 msgstr "" 129 129 130 #: admin/class-admin-settings.php:2 65130 #: admin/class-admin-settings.php:270 131 131 msgid "This plugin uses JavaScript to remove any numbers from a comment author name, this is because numbers trigger enumeration checking. You can untick this if you do not use comments on your site or you use a different comment method than standard" 132 132 msgstr "" 133 133 134 #: frontend/class-frontend.php: 67134 #: frontend/class-frontend.php:80 135 135 msgid "forbidden - number in author name not allowed = " 136 136 msgstr "" 137 137 138 #: frontend/class-frontend.php: 128138 #: frontend/class-frontend.php:209 139 139 msgid "Only authenticated users can access the User endpoint REST API." 140 140 msgstr "" -
stop-user-enumeration/tags/1.7.1/readme.txt
r3259418 r3282442 4 4 Tags: User Enumeration, Security, WPSCAN, fail2ban, security 5 5 Requires at least: 6.3 6 Tested up to: 6. 76 Tested up to: 6.8 7 7 Requires PHP: 7.4 8 Stable tag: 1.7 8 Stable tag: 1.7.1 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 71 71 Also usernames containing numbers may not work in the front end. Additionally the default rule for Rest APi is anything with users in it, so other plugins may set up endpoints. 72 72 = How can I change the Rest API match rules = 73 There are two filters `stop_user_enumeration_rest_stop_match` set to `/users/i` by default and `stop_user_enumeration_rest_allow_match` set to `simple-jwt-login` by default ( to allow that plugin's endpoints ) 73 There are two filters `stop_user_enumeration_rest_stop_match` set to `/users/i` by default and `stop_user_enumeration_rest_allowed_match` set to `simple-jwt-login` by default ( to allow that plugin's endpoints ) 74 75 = Developer Hooks and Filters = 76 The following hooks and filters are available for developers: 77 78 **Filters:** 79 * `stop_user_enumeration_rest_stop_match` - Modify the pattern used to detect REST API user queries (default: `/users/i`) 80 * `stop_user_enumeration_rest_allowed_match` - Add exceptions to the REST API blocking rules (default: `/simple-jwt-login/i`) 81 * `stop_user_enumeration_ip` - Filter the detected IP address before logging or processing (useful for integration with CDNs or proxies) 82 * `stop_user_enumeration_should_block` - Determine if a request should be blocked based on IP or other conditions (return false to allow the request) 83 84 **Actions:** 85 * `stop_user_enumeration_attempt` - Triggered when user enumeration attempt is detected and logged (passes the IP address as parameter) 86 87 These hooks enable add-on features like limit login attempts, block lists, WAF notifications, and integration with external services like Cloudflare. 74 88 = Do I need fail2ban for this to work? = 75 89 No, but fail2ban will allow you to block IP addresses at your VPS / Dedicated server firewall that attempt user enumeration. -
stop-user-enumeration/tags/1.7.1/stop-user-enumeration.php
r3259418 r3282442 4 4 Plugin URI: https://fullworksplugins.com/products/stop-user-enumeration/ 5 5 Description: Helps secure your site against hacking attacks through detecting User Enumeration 6 Version: 1.7 6 Version: 1.7.1 7 7 Author: Fullworks 8 8 Requires at least: 6.3 … … 32 32 namespace Stop_User_Enumeration; 33 33 34 use Fullworks_WP_Autoloader\AutoloaderPlugin;35 34 use Stop_User_Enumeration\Includes\Core; 36 35 … … 48 47 // Include the autoloader to dynamically include the classes. 49 48 require_once STOP_USER_ENUMERATION_PLUGIN_DIR . 'includes/vendor/autoload.php'; 50 new AutoloaderPlugin(__NAMESPACE__, __DIR__);51 49 52 50 /** -
stop-user-enumeration/trunk/admin/class-admin-pages.php
r2638659 r3282442 26 26 27 27 public function settings_setup() { 28 $this->settings_title = esc_html__( 'Stop User Enumeration', 'stop-user-enumeration' ); 28 29 add_submenu_page( 29 30 'options-general.php', -
stop-user-enumeration/trunk/admin/class-admin-settings.php
r3259418 r3282442 33 33 $this->plugin_name = $plugin_name; 34 34 $this->version = $version; 35 $this->settings_title = esc_html__( 'Stop User Enumeration', 'stop-user-enumeration' );36 35 parent::__construct(); 37 36 new \Fullworks_Free_Plugin_Lib\Main('stop-user-enumeration/stop-user-enumeration.php', -
stop-user-enumeration/trunk/changelog.txt
r3259418 r3282442 1 1 == Changelog == 2 = 1.7.1 = 3 * add developer hooks and filters for extending plugin functionality 4 * added stop_user_enumeration_ip filter to allow modifying detected IP addresses 5 * added stop_user_enumeration_should_block filter to conditionally allow or block requests 6 * added stop_user_enumeration_attempt action hook for processing enumeration attempts 7 * fix doing_it_wrong notice for WP 6.8 8 2 9 = 1.7 = 3 10 * add opt in library -
stop-user-enumeration/trunk/composer.json
r3259418 r3282442 17 17 } 18 18 }, 19 "repositories": { 20 "alanef/wp_autoloader": { 21 "type": "vcs", 22 "url": "https://github.com/alanef/wp_autoloader" 23 } 19 "autoload": { 20 "classmap": [ 21 "." 22 ] 24 23 }, 25 24 "require": { 26 25 "php": ">=7.4", 27 "alanef/wp_autoloader": "dev-main",28 26 "alanef/free_plugin_lib": "^v1.0.0", 29 27 "composer/installers": "v1.0.12" -
stop-user-enumeration/trunk/composer.lock
r3259418 r3282442 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 187c412ec756dec2fbedebfec6885a28",7 "content-hash": "5ceeafea73cf4061b84971f875180dce", 8 8 "packages": [ 9 9 { … … 52 52 }, 53 53 "time": "2025-02-18T15:16:14+00:00" 54 },55 {56 "name": "alanef/wp_autoloader",57 "version": "dev-main",58 "source": {59 "type": "git",60 "url": "https://github.com/alanef/wp_autoloader.git",61 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d"62 },63 "dist": {64 "type": "zip",65 "url": "https://api.github.com/repos/alanef/wp_autoloader/zipball/ab82c9014dd47efbe72cb3612c2a57715bcb212d",66 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d",67 "shasum": ""68 },69 "default-branch": true,70 "type": "library",71 "autoload": {72 "psr-4": {73 "Fullworks_WP_Autoloader\\": "src/"74 }75 },76 "license": [77 "GPL-2.0-or-later"78 ],79 "authors": [80 {81 "name": "alan",82 "email": "alan@fullworks.net"83 }84 ],85 "description": "A custom autoloader to comply with WP class file names",86 "support": {87 "source": "https://github.com/alanef/wp_autoloader/tree/main",88 "issues": "https://github.com/alanef/wp_autoloader/issues"89 },90 "time": "2024-10-24T10:54:40+00:00"91 54 }, 92 55 { … … 182 145 "aliases": [], 183 146 "minimum-stability": "stable", 184 "stability-flags": { 185 "alanef/wp_autoloader": 20 186 }, 147 "stability-flags": [], 187 148 "prefer-stable": false, 188 149 "prefer-lowest": false, -
stop-user-enumeration/trunk/frontend/class-frontend.php
r3259418 r3282442 109 109 // Get the IP address of the request 110 110 $ip = $this->get_ip(); 111 112 // Allow filtering of the IP address for integration with external services 113 $ip = apply_filters( 'stop_user_enumeration_ip', $ip ); 111 114 112 115 // Check if the IP address is valid and logging is enabled in the plugin options … … 125 128 } else { 126 129 // Fallback logging mechanism using error_log 130 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log -- fall back logging 127 131 error_log( "Attempted user enumeration from " . esc_html( $ip ) ); 128 132 } 133 134 // Action hook for add-ons to process enumeration attempts (limit login, blocklists, etc.) 135 do_action( 'stop_user_enumeration_attempt', $ip ); 129 136 } 130 137 } … … 191 198 return $access; // check not exception 192 199 } 193 $this->sue_log(); 194 195 return new WP_Error( 'rest_cannot_access', esc_html__( 'Only authenticated users can access the User endpoint REST API.', 'stop-user-enumeration' ), array( 'status' => rest_authorization_required_code() ) ); 200 201 // Get IP address for logging and filtering 202 $ip = $this->get_ip(); 203 204 // Filter to allow extensions to determine if blocking should occur 205 $should_block = apply_filters( 'stop_user_enumeration_should_block', true, $ip ); 206 207 if ( $should_block ) { 208 $this->sue_log(); 209 return new WP_Error( 'rest_cannot_access', esc_html__( 'Only authenticated users can access the User endpoint REST API.', 'stop-user-enumeration' ), array( 'status' => rest_authorization_required_code() ) ); 210 } 196 211 } 197 212 } -
stop-user-enumeration/trunk/includes/vendor/autoload.php
r3259418 r3282442 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d::getLoader();25 return ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce::getLoader(); -
stop-user-enumeration/trunk/includes/vendor/composer/autoload_classmap.php
r3157454 r3282442 7 7 8 8 return array( 9 'ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce' => $vendorDir . '/composer/autoload_real.php', 10 'Composer\\Autoload\\ClassLoader' => $vendorDir . '/composer/ClassLoader.php', 11 'Composer\\Autoload\\ComposerStaticInit5ceeafea73cf4061b84971f875180dce' => $vendorDir . '/composer/autoload_static.php', 9 12 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 13 'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php', 14 'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php', 15 'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php', 16 'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php', 17 'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php', 18 'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php', 19 'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php', 20 'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php', 21 'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php', 22 'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php', 23 'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php', 24 'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php', 25 'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php', 26 'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php', 27 'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php', 28 'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php', 29 'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php', 30 'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php', 31 'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php', 32 'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php', 33 'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php', 34 'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php', 35 'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php', 36 'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php', 37 'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php', 38 'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php', 39 'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php', 40 'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php', 41 'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php', 42 'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php', 43 'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php', 44 'Composer\\Installers\\Test\\CakePHPInstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php', 45 'Composer\\Installers\\Test\\InstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/InstallerTest.php', 46 'Composer\\Installers\\Test\\MediaWikiInstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php', 47 'Composer\\Installers\\Test\\PiwikInstallerTest' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php', 48 'Composer\\Installers\\Test\\TestCase' => $vendorDir . '/composer/installers/tests/Composer/Installers/Test/TestCase.php', 49 'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php', 50 'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php', 51 'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php', 52 'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php', 53 'Fullworks_Free_Plugin_Lib\\Classes\\Advert' => $vendorDir . '/alanef/free_plugin_lib/src/Classes/Advert.php', 54 'Fullworks_Free_Plugin_Lib\\Classes\\Email' => $vendorDir . '/alanef/free_plugin_lib/src/Classes/Email.php', 55 'Fullworks_Free_Plugin_Lib\\Classes\\Security' => $vendorDir . '/alanef/free_plugin_lib/src/Classes/Security.php', 56 'Fullworks_Free_Plugin_Lib\\Main' => $vendorDir . '/alanef/free_plugin_lib/src/Main.php', 57 'Stop_User_Enumeration\\Admin\\Admin_Pages' => $baseDir . '/admin/class-admin-pages.php', 58 'Stop_User_Enumeration\\Admin\\Admin_Settings' => $baseDir . '/admin/class-admin-settings.php', 59 'Stop_User_Enumeration\\FrontEnd\\FrontEnd' => $baseDir . '/frontend/class-frontend.php', 60 'Stop_User_Enumeration\\Includes\\Activator' => $baseDir . '/includes/class-activator.php', 61 'Stop_User_Enumeration\\Includes\\Core' => $baseDir . '/includes/class-core.php', 62 'Stop_User_Enumeration\\Includes\\Loader' => $baseDir . '/includes/class-loader.php', 63 'Stop_User_Enumeration\\Includes\\Uninstall' => $baseDir . '/includes/class-uninstall.php', 64 'Stop_User_Enumeration\\Includes\\i18n' => $baseDir . '/includes/class-i18n.php', 10 65 ); -
stop-user-enumeration/trunk/includes/vendor/composer/autoload_psr4.php
r3259418 r3282442 7 7 8 8 return array( 9 'Fullworks_WP_Autoloader\\' => array($vendorDir . '/alanef/wp_autoloader/src'),10 9 'Fullworks_Free_Plugin_Lib\\' => array($vendorDir . '/alanef/free_plugin_lib/src'), 11 10 ); -
stop-user-enumeration/trunk/includes/vendor/composer/autoload_real.php
r3259418 r3282442 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d5 class ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 26453b414d4d8df0e1a74d359d301a2d', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInit5ceeafea73cf4061b84971f875180dce::getInitializer($loader)); 33 33 34 34 $loader->register(true); -
stop-user-enumeration/trunk/includes/vendor/composer/autoload_static.php
r3259418 r3282442 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d7 class ComposerStaticInit5ceeafea73cf4061b84971f875180dce 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( 10 10 'F' => 11 11 array ( 12 'Fullworks_WP_Autoloader\\' => 24,13 12 'Fullworks_Free_Plugin_Lib\\' => 26, 14 13 ), … … 16 15 17 16 public static $prefixDirsPsr4 = array ( 18 'Fullworks_WP_Autoloader\\' =>19 array (20 0 => __DIR__ . '/..' . '/alanef/wp_autoloader/src',21 ),22 17 'Fullworks_Free_Plugin_Lib\\' => 23 18 array ( … … 37 32 38 33 public static $classMap = array ( 34 'ComposerAutoloaderInit5ceeafea73cf4061b84971f875180dce' => __DIR__ . '/..' . '/composer/autoload_real.php', 35 'Composer\\Autoload\\ClassLoader' => __DIR__ . '/..' . '/composer/ClassLoader.php', 36 'Composer\\Autoload\\ComposerStaticInit5ceeafea73cf4061b84971f875180dce' => __DIR__ . '/..' . '/composer/autoload_static.php', 39 37 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 38 'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php', 39 'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php', 40 'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php', 41 'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php', 42 'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php', 43 'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php', 44 'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php', 45 'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php', 46 'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php', 47 'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php', 48 'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php', 49 'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php', 50 'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php', 51 'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php', 52 'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php', 53 'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php', 54 'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php', 55 'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php', 56 'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php', 57 'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php', 58 'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php', 59 'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php', 60 'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php', 61 'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php', 62 'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php', 63 'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php', 64 'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php', 65 'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php', 66 'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php', 67 'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php', 68 'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php', 69 'Composer\\Installers\\Test\\CakePHPInstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php', 70 'Composer\\Installers\\Test\\InstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/InstallerTest.php', 71 'Composer\\Installers\\Test\\MediaWikiInstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php', 72 'Composer\\Installers\\Test\\PiwikInstallerTest' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php', 73 'Composer\\Installers\\Test\\TestCase' => __DIR__ . '/..' . '/composer/installers/tests/Composer/Installers/Test/TestCase.php', 74 'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php', 75 'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php', 76 'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php', 77 'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php', 78 'Fullworks_Free_Plugin_Lib\\Classes\\Advert' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Classes/Advert.php', 79 'Fullworks_Free_Plugin_Lib\\Classes\\Email' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Classes/Email.php', 80 'Fullworks_Free_Plugin_Lib\\Classes\\Security' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Classes/Security.php', 81 'Fullworks_Free_Plugin_Lib\\Main' => __DIR__ . '/..' . '/alanef/free_plugin_lib/src/Main.php', 82 'Stop_User_Enumeration\\Admin\\Admin_Pages' => __DIR__ . '/../../..' . '/admin/class-admin-pages.php', 83 'Stop_User_Enumeration\\Admin\\Admin_Settings' => __DIR__ . '/../../..' . '/admin/class-admin-settings.php', 84 'Stop_User_Enumeration\\FrontEnd\\FrontEnd' => __DIR__ . '/../../..' . '/frontend/class-frontend.php', 85 'Stop_User_Enumeration\\Includes\\Activator' => __DIR__ . '/../../..' . '/includes/class-activator.php', 86 'Stop_User_Enumeration\\Includes\\Core' => __DIR__ . '/../../..' . '/includes/class-core.php', 87 'Stop_User_Enumeration\\Includes\\Loader' => __DIR__ . '/../../..' . '/includes/class-loader.php', 88 'Stop_User_Enumeration\\Includes\\Uninstall' => __DIR__ . '/../../..' . '/includes/class-uninstall.php', 89 'Stop_User_Enumeration\\Includes\\i18n' => __DIR__ . '/../../..' . '/includes/class-i18n.php', 40 90 ); 41 91 … … 43 93 { 44 94 return \Closure::bind(function () use ($loader) { 45 $loader->prefixLengthsPsr4 = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$prefixLengthsPsr4;46 $loader->prefixDirsPsr4 = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$prefixDirsPsr4;47 $loader->prefixesPsr0 = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$prefixesPsr0;48 $loader->classMap = ComposerStaticInit 26453b414d4d8df0e1a74d359d301a2d::$classMap;95 $loader->prefixLengthsPsr4 = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$prefixLengthsPsr4; 96 $loader->prefixDirsPsr4 = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$prefixDirsPsr4; 97 $loader->prefixesPsr0 = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$prefixesPsr0; 98 $loader->classMap = ComposerStaticInit5ceeafea73cf4061b84971f875180dce::$classMap; 49 99 50 100 }, null, ClassLoader::class); -
stop-user-enumeration/trunk/includes/vendor/composer/installed.json
r3259418 r3282442 49 49 }, 50 50 "install-path": "../alanef/free_plugin_lib" 51 },52 {53 "name": "alanef/wp_autoloader",54 "version": "dev-main",55 "version_normalized": "dev-main",56 "source": {57 "type": "git",58 "url": "https://github.com/alanef/wp_autoloader.git",59 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d"60 },61 "dist": {62 "type": "zip",63 "url": "https://api.github.com/repos/alanef/wp_autoloader/zipball/ab82c9014dd47efbe72cb3612c2a57715bcb212d",64 "reference": "ab82c9014dd47efbe72cb3612c2a57715bcb212d",65 "shasum": ""66 },67 "time": "2024-10-24T10:54:40+00:00",68 "default-branch": true,69 "type": "library",70 "installation-source": "dist",71 "autoload": {72 "psr-4": {73 "Fullworks_WP_Autoloader\\": "src/"74 }75 },76 "license": [77 "GPL-2.0-or-later"78 ],79 "authors": [80 {81 "name": "alan",82 "email": "alan@fullworks.net"83 }84 ],85 "description": "A custom autoloader to comply with WP class file names",86 "support": {87 "source": "https://github.com/alanef/wp_autoloader/tree/main",88 "issues": "https://github.com/alanef/wp_autoloader/issues"89 },90 "install-path": "../alanef/wp_autoloader"91 51 }, 92 52 { -
stop-user-enumeration/trunk/includes/vendor/composer/installed.php
r3259418 r3282442 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' 1f9d8726d88cd70e9fc59f7461034796df8ce1a2',6 'reference' => 'df3c3d40306aa96fb00e8506f9aeba9ba9a477a1', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../../', … … 20 20 'dev_requirement' => false, 21 21 ), 22 'alanef/wp_autoloader' => array(23 'pretty_version' => 'dev-main',24 'version' => 'dev-main',25 'reference' => 'ab82c9014dd47efbe72cb3612c2a57715bcb212d',26 'type' => 'library',27 'install_path' => __DIR__ . '/../alanef/wp_autoloader',28 'aliases' => array(29 0 => '9999999-dev',30 ),31 'dev_requirement' => false,32 ),33 22 'composer/installers' => array( 34 23 'pretty_version' => 'v1.0.12', … … 43 32 'pretty_version' => 'dev-main', 44 33 'version' => 'dev-main', 45 'reference' => ' 1f9d8726d88cd70e9fc59f7461034796df8ce1a2',34 'reference' => 'df3c3d40306aa96fb00e8506f9aeba9ba9a477a1', 46 35 'type' => 'wordpress-plugin', 47 36 'install_path' => __DIR__ . '/../../../', -
stop-user-enumeration/trunk/languages/stop-user-enumeration.pot
r3259418 r3282442 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Stop User Enumeration 1.7 \n"5 "Project-Id-Version: Stop User Enumeration 1.7.1\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/stop-user-enumeration\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2025-0 3-20T17:26:47+00:00\n"12 "POT-Creation-Date: 2025-04-26T15:20:35+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.10.0\n" … … 17 17 #. Plugin Name of the plugin 18 18 #: stop-user-enumeration.php 19 #: admin/class-admin- settings.php:3519 #: admin/class-admin-pages.php:28 20 20 msgid "Stop User Enumeration" 21 21 msgstr "" … … 41 41 msgstr "" 42 42 43 #: admin/class-admin-pages.php:15 643 #: admin/class-admin-pages.php:157 44 44 msgid "Save Options" 45 45 msgstr "" 46 46 47 #: admin/class-admin-pages.php:18 247 #: admin/class-admin-pages.php:183 48 48 msgid "Save" 49 49 msgstr "" 50 50 51 #: admin/class-admin-pages.php:19 351 #: admin/class-admin-pages.php:194 52 52 msgid "Settings reset to defaults." 53 53 msgstr "" 54 54 55 #: admin/class-admin-settings.php:9 155 #: admin/class-admin-settings.php:95 56 56 msgid "Information" 57 57 msgstr "" 58 58 59 #: admin/class-admin-settings.php: 9959 #: admin/class-admin-settings.php:103 60 60 msgid "Options" 61 61 msgstr "" 62 62 63 #: admin/class-admin-settings.php:11 363 #: admin/class-admin-settings.php:118 64 64 msgid "About this Plugin" 65 65 msgstr "" 66 66 67 #: admin/class-admin-settings.php:1 1567 #: admin/class-admin-settings.php:120 68 68 msgid "Stop User Enumeration detects attempts by malicious scanners to identify your users" 69 69 msgstr "" 70 70 71 #: admin/class-admin-settings.php:1 1971 #: admin/class-admin-settings.php:124 72 72 msgid "" 73 73 "If a bot or user is caught scanning for user names they are denied access and their IP is\n" … … 75 75 msgstr "" 76 76 77 #: admin/class-admin-settings.php:1 2877 #: admin/class-admin-settings.php:133 78 78 msgid "" 79 79 "When you are viewing an admin page, the plugin does nothing, this is designed this way as it is\n" … … 81 81 msgstr "" 82 82 83 #: admin/class-admin-settings.php:1 3783 #: admin/class-admin-settings.php:142 84 84 msgid "" 85 85 "This plugin is best used in conjunction with a blocking tool to exclude the IP for longer. If you\n" … … 87 87 msgstr "" 88 88 89 #: admin/class-admin-settings.php:1 4589 #: admin/class-admin-settings.php:150 90 90 msgid "Also note: It is very common for users to leave their Display Name and Nickname the same as their Username, in which case the Username is leaked by so many things. Best to check at least your admins don't do this" 91 91 msgstr "" 92 92 93 #: admin/class-admin-settings.php: 19893 #: admin/class-admin-settings.php:203 94 94 msgid "Stop REST API User calls" 95 95 msgstr "" 96 96 97 #: admin/class-admin-settings.php:2 0597 #: admin/class-admin-settings.php:210 98 98 msgid "WordPress allows anyone to find users by API call, by checking this box the calls will be restricted to logged in users only. Only untick this box if you need to allow unfettered API access to users" 99 99 msgstr "" 100 100 101 #: admin/class-admin-settings.php:21 0101 #: admin/class-admin-settings.php:215 102 102 msgid "Stop oEmbed calls revealing user ids" 103 103 msgstr "" 104 104 105 #: admin/class-admin-settings.php:2 17105 #: admin/class-admin-settings.php:222 106 106 msgid "WordPress reveals the user login ID through oEmbed calls by including the Author Archive link which contains the user id. When in many cases just the Author Name is enough. Note: remember it is not good idea to have login user id equal to your display name" 107 107 msgstr "" 108 108 109 #: admin/class-admin-settings.php:22 2109 #: admin/class-admin-settings.php:227 110 110 msgid "Disable WP Core Author sitemaps" 111 111 msgstr "" 112 112 113 #: admin/class-admin-settings.php:2 29113 #: admin/class-admin-settings.php:234 114 114 msgid "WordPress provides sitemaps for built-in content types like pages and author archives out of the box. The Author sitemap exposes the user id." 115 115 msgstr "" 116 116 117 #: admin/class-admin-settings.php:23 4117 #: admin/class-admin-settings.php:239 118 118 msgid "log attempts to AUTH LOG" 119 119 msgstr "" 120 120 121 121 #. translators: leave place holders 122 #: admin/class-admin-settings.php:24 4122 #: admin/class-admin-settings.php:249 123 123 msgid "Leave this ticked if you are using %1$sFail2Ban%2$s on your VPS to block attempts at enumeration.%3$s If you are not running Fail2Ban or on a shared host this does not need to be ticked, however it normally will not cause a problem being ticked." 124 124 msgstr "" 125 125 126 #: admin/class-admin-settings.php:2 57126 #: admin/class-admin-settings.php:262 127 127 msgid "Remove numbers from comment authors" 128 128 msgstr "" 129 129 130 #: admin/class-admin-settings.php:2 65130 #: admin/class-admin-settings.php:270 131 131 msgid "This plugin uses JavaScript to remove any numbers from a comment author name, this is because numbers trigger enumeration checking. You can untick this if you do not use comments on your site or you use a different comment method than standard" 132 132 msgstr "" 133 133 134 #: frontend/class-frontend.php: 67134 #: frontend/class-frontend.php:80 135 135 msgid "forbidden - number in author name not allowed = " 136 136 msgstr "" 137 137 138 #: frontend/class-frontend.php: 128138 #: frontend/class-frontend.php:209 139 139 msgid "Only authenticated users can access the User endpoint REST API." 140 140 msgstr "" -
stop-user-enumeration/trunk/readme.txt
r3259418 r3282442 4 4 Tags: User Enumeration, Security, WPSCAN, fail2ban, security 5 5 Requires at least: 6.3 6 Tested up to: 6. 76 Tested up to: 6.8 7 7 Requires PHP: 7.4 8 Stable tag: 1.7 8 Stable tag: 1.7.1 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 71 71 Also usernames containing numbers may not work in the front end. Additionally the default rule for Rest APi is anything with users in it, so other plugins may set up endpoints. 72 72 = How can I change the Rest API match rules = 73 There are two filters `stop_user_enumeration_rest_stop_match` set to `/users/i` by default and `stop_user_enumeration_rest_allow_match` set to `simple-jwt-login` by default ( to allow that plugin's endpoints ) 73 There are two filters `stop_user_enumeration_rest_stop_match` set to `/users/i` by default and `stop_user_enumeration_rest_allowed_match` set to `simple-jwt-login` by default ( to allow that plugin's endpoints ) 74 75 = Developer Hooks and Filters = 76 The following hooks and filters are available for developers: 77 78 **Filters:** 79 * `stop_user_enumeration_rest_stop_match` - Modify the pattern used to detect REST API user queries (default: `/users/i`) 80 * `stop_user_enumeration_rest_allowed_match` - Add exceptions to the REST API blocking rules (default: `/simple-jwt-login/i`) 81 * `stop_user_enumeration_ip` - Filter the detected IP address before logging or processing (useful for integration with CDNs or proxies) 82 * `stop_user_enumeration_should_block` - Determine if a request should be blocked based on IP or other conditions (return false to allow the request) 83 84 **Actions:** 85 * `stop_user_enumeration_attempt` - Triggered when user enumeration attempt is detected and logged (passes the IP address as parameter) 86 87 These hooks enable add-on features like limit login attempts, block lists, WAF notifications, and integration with external services like Cloudflare. 74 88 = Do I need fail2ban for this to work? = 75 89 No, but fail2ban will allow you to block IP addresses at your VPS / Dedicated server firewall that attempt user enumeration. -
stop-user-enumeration/trunk/stop-user-enumeration.php
r3259418 r3282442 4 4 Plugin URI: https://fullworksplugins.com/products/stop-user-enumeration/ 5 5 Description: Helps secure your site against hacking attacks through detecting User Enumeration 6 Version: 1.7 6 Version: 1.7.1 7 7 Author: Fullworks 8 8 Requires at least: 6.3 … … 32 32 namespace Stop_User_Enumeration; 33 33 34 use Fullworks_WP_Autoloader\AutoloaderPlugin;35 34 use Stop_User_Enumeration\Includes\Core; 36 35 … … 48 47 // Include the autoloader to dynamically include the classes. 49 48 require_once STOP_USER_ENUMERATION_PLUGIN_DIR . 'includes/vendor/autoload.php'; 50 new AutoloaderPlugin(__NAMESPACE__, __DIR__);51 49 52 50 /**
Note: See TracChangeset
for help on using the changeset viewer.