Skip to content
WordPress.org
  • Showcase
  • Plugins
  • Themes
  • Hosting
  • News
    • Learn WordPress
    • Documentation
    • Education
    • Forums
    • Developers
    • Blocks
    • Patterns
    • Photos
    • Openverse ↗︎
    • WordPress.tv ↗︎
    • About WordPress
    • Make WordPress
    • Events
    • Five for the Future
    • Enterprise
    • Gutenberg ↗︎
    • Job Board ↗︎
    • Swag Store ↗︎
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

MyFast Login Guard – Login Protection & Server Info

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

MyFast Login Guard – Login Protection & Server Info

By myfastwebhosting
Download
  • Details
  • Reviews
  • Installation
  • Development
Support

Description

MyFast Login Guard provides two things hosting clients actually need:

Login protection

  • Rename your login page to a custom URL — direct access to /wp-login.php returns a 404
  • Limit login attempts — lock out an IP after a configurable number of failures
  • Configurable lockout duration (default: 5 attempts, 30-minute lockout)
  • IP whitelist — your own IPs are never locked out
  • Optional email notification when a lockout is triggered
  • Manual unlock from the Lockout Log page

Server information and error log

  • Full PHP environment: version, memory, OPcache, extensions, disabled functions, error log path
  • WordPress environment: version, debug flags, memory limits, active plugin count
  • Server details: software, IP, document root, HTTPS status, OS
  • Database: MySQL/MariaDB version, database size
  • Disk usage: total, used, free
  • Scheduled cron events with overdue detection
  • Error log viewer: reads WordPress debug.log (or PHP error log), filterable by Fatal / Warning / Notice, with one-click clear

Design principles

  • No external API calls
  • No cronjobs
  • No .htaccess rewriting
  • No front-end database queries
  • Assets load only on the plugin’s own admin pages

Installation

  1. Upload the myfast-login-guard folder to /wp-content/plugins/
  2. Activate the plugin through the Plugins screen in WordPress
  3. Go to MyFast Login Guard in the admin menu to configure

FAQ

Will renaming my login page break anything?

No. WordPress internal redirects (logout, password reset, registration) continue to work. Only direct access to /wp-login.php returns a 404 for logged-out visitors.

What happens if I forget my custom login slug?

You have two options:

  1. Visit /wp-admin/ — WordPress will redirect you to the login page at the correct URL.
  2. Add define( 'MFLG_DISABLE_LOGIN_SLUG', true ); to your wp-config.php to temporarily restore /wp-login.php access without deactivating the plugin.

What happens if I lock myself out?

Add your IP address to the Whitelist IPs field in Settings. If you are already locked out, connect via FTP/SSH, open wp-config.php, and add:
define( ‘MFLG_DISABLE_LOGIN_SLUG’, true );
Then log in normally, unlock your IP from the Lockout Log page, and remove the constant.

Does this replace a firewall or security plugin?

No. It is a lightweight complement — it stops brute-force login attempts and gives you visibility into your server environment. It does not scan files, block requests at the firewall level, or monitor for malware.

How are IP addresses detected?

The plugin uses REMOTE_ADDR (the actual TCP connection IP) as the primary source. If the site is behind Cloudflare, the CF-Connecting-IP header is trusted only when the connection originates from a verified Cloudflare IP range. Forwarded headers such as X-Forwarded-For that can be spoofed by clients are intentionally ignored.

Is the lockout data cleaned up on uninstall?

Yes. Uninstalling the plugin removes all plugin settings and lockout records from wp_options.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“MyFast Login Guard – Login Protection & Server Info” is open source software. The following people have contributed to this plugin.

Contributors
  • myfastwebhosting

Translate “MyFast Login Guard – Login Protection & Server Info” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.3.6

  • Renamed: Plugin renamed to MyFast Login Guard & Server Info with new slug myfast-login-guard and mflg_ prefix throughout.
  • Fixed: All CSS class names updated from lssi- to mflg- prefix for uniqueness compliance.
  • Fixed: Inline block removed from lockout log page — now uses enqueued lockouts.js.
  • Fixed: Removed unused lockouts database table — lockout data stored cleanly in wp_options.
  • Fixed: Activation/deactivation hooks converted from anonymous closures to named functions.
  • Fixed: Transient cleanup queries now use $wpdb->prepare() for full PHPCS compliance.
  • Fixed: Cloudflare cache purge hook removed entirely per WP.org reviewer requirement.
  • Fixed: wp_cache_delete() added before wp_localize_script() to guarantee fresh settings on page load.
  • Fixed: Login slug reserved-word validation added client-side with clear error message.
  • Fixed: Emergency escape hatch constant renamed to MFLG_DISABLE_LOGIN_SLUG.
  • Improved: Error log path detection now checks ini_get(‘error_log’) as first candidate.
  • Improved: Server info table stacks label above value on mobile instead of horizontal scroll.
  • Improved: Export for Support button min-height corrected on mobile.

1.3.1

  • Fixed: Text domain reverted to login-shield-server-info to match plugin folder name (Plugin Check compliance).
  • Fixed: Removed discouraged load_plugin_textdomain() call (auto-loaded by WordPress.org since WP 4.6).
  • Fixed: Replaced fopen/fclose with WP_Filesystem in error-log.php and server-info.php.
  • Fixed: Replaced parse_url() with wp_parse_url() in login-protect.php.
  • Fixed: Added wp_unslash() to all $_SERVER reads in server-info.php.
  • Fixed: Unescaped output — $status_label now uses wp_kses(), $icon uses wp_kses(), min() wrapped in esc_attr().
  • Fixed: Ordered placeholders (%1$d, %2$s) and added translators comments in server-info.php and login-protect.php.
  • Fixed: Added phpcs:ignore with justification for third-party hook names, read-only GET params, and socket fclose.
  • Fixed: uninstall.php table variable renamed with lssi_ prefix.
  • Fixed: Upgrade notices trimmed to under 300 characters.

1.3.0

  • Updated text domain from login-shield-server-info to fastshield-security to match the approved WordPress.org plugin slug.

1.2.9

  • Fixed: Updated “Tested up to” to WordPress 6.9.

1.2.8

  • Fixed: Removed duplicate Plugin URI (was identical to Author URI) per WordPress.org submission requirements.

1.2.7

  • Renamed plugin to MyFast Login Guard – Login Protection & Server Info to comply with WordPress.org naming guidelines.

1.2.6

  • Security: Validate error log tab parameter against known tab whitelist before use in URL output (was sanitize_key only).
  • Code quality: Added phpcs ignore with full justification comment for shell_exec inode check — path escaped via escapeshellarg(), output parsed as integers only.

1.2.5

  • Fixed: Missing return statements after wp_send_json_error() in AJAX handlers — code after the error response could execute.
  • Fixed: Uninstall now also removes the lssi_lockouts option from wp_options (previously only the DB table was dropped).
  • Fixed: Removed dead lssi_utilities_page() function — the page was unreachable with no menu entry.
  • Fixed: Removed wp-components from script dependencies (only wp-element is actually used).

1.2.4

  • Fixed: Removed the Utilities submenu page which was causing 404 errors on some hosts. The AJAX cache clear remains available in Settings. Any bookmarked lssi-utilities URLs now redirect cleanly to Settings.

1.2.3

  • Security: Rewrote IP detection to use REMOTE_ADDR as ground truth; CF-Connecting-IP is now only trusted when REMOTE_ADDR is a verified Cloudflare edge IP. X-Forwarded-For and X-Real-IP removed to prevent spoofing.
  • Code quality: Moved login-page CSS from inline output to enqueued assets/css/login.css per WordPress coding standards.
  • Usability: Added MFLG_DISABLE_LOGIN_SLUG constant as an emergency escape hatch for locked-out administrators.
  • Docs: Expanded readme.txt FAQ with lockout recovery instructions and IP detection explanation.

1.2.2

  • Mobile: Lockout log table now stacks as labelled cards on small screens.
  • Mobile: Custom login slug and lockout email inputs stack full-width on mobile.
  • Error log: Tabs moved inside the log card for discoverability on both mobile and desktop.

1.2.1

  • Fixed: wp_login_failed hook signature made compatible with WordPress < 5.4.
  • Fixed: authenticate filter now only runs on POST submissions, not every page load.
  • Added: Attempts-remaining counter shown on the login page after a failed attempt.

1.2.0

  • Added brute-force lockout engine: tracks failed attempts per IP, locks out after configurable threshold, sends email notification, auto-expires lockouts.
  • Added Unlock and Clear All buttons to Lockout Log page.

1.1.9

  • Fixed asset paths, admin menu parent slug, activation hook, and lssi_get() signature.

1.0.0

  • Initial release.

Meta

  • Version 1.3.6
  • Last updated 3 hours ago
  • Active installations Fewer than 10
  • WordPress version 6.0 or higher
  • Tested up to 6.9.4
  • PHP version 8.0 or higher
  • Tags
    Brute Forceerror loglimit login attemptslogin protectionserver info
  • Advanced View

Ratings

No reviews have been submitted yet.

Your review

See all reviews

Contributors

  • myfastwebhosting

Support

Got something to say? Need help?

View support forum

  • About
  • News
  • Hosting
  • Privacy
  • Showcase
  • Themes
  • Plugins
  • Patterns
  • Learn
  • Documentation
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Five for the Future
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org
  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
Code is Poetry
The WordPress® trademark is the intellectual property of the WordPress Foundation.