WP Manifestindependent plugin directory
manifest / security / limit-login-attempts-ng

Limit Login Attempts NG WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

ClassicPress plugin: Limit rate of login attempts, including by way of cookies, for each IP.

★ 1stars
154release downloads
≈50active sites
1.0.1latest · 9mo ago

Install

Download limit-login-attempts-ng-1.0.1.zip From the 1.0.1 release on GitHub, Jan 22, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/xxsimoxx/limit-login-attempts-ng/releases/download/1.0.1/limit-login-attempts-ng-1.0.1.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Limit Login Attempts NG banner

Limit Login Attempts NG

Limit rate of login attempts, including by way of cookies, for each IP. Fully customizable.

Description

Limit the number of login attempts possible both through normal login as well as using auth cookies.

By default ClassicPress allows unlimited login attempts either through the login page or by sending special cookies. This allows passwords (or hashes) to be brute-force cracked with relative ease.

Limit Login Attempts blocks an Internet address from making further attempts after a specified limit on retries is reached, making a brute-force attack difficult or impossible.

This plugin is a fork of Limit Login Attempts Copyright 2008 - 2012 Johan Eenfeldt

Features

  • Limit the number of retry attempts when logging in (for each IP). Fully customizable
  • Limit the number of attempts to log in using auth cookies in same way
  • Informs user about remaining retries or lockout time on login page
  • Optional logging, optional email notification
  • Handles server behind reverse proxy
  • It is possible to whitelist IPs using a filter. But you probably shouldn't. :-)

Translations: Bulgarian, Brazilian Portuguese, Catalan, Chinese (Traditional), Czech, Dutch, Finnish, French, German, Hungarian, Italian, Norwegian, Persian, Romanian, Russian, Spanish, Swedish, Turkish

Installation

  1. Download and extract plugin files to a wp-content/plugin directory.
  2. Activate the plugin through the ClassicPress admin interface.
  3. Customize the settings on the options page, if desired. If your server is located behind a reverse proxy make sure to change this setting.

Requirement

This plugin is intended for use with ClassicPress.

Frequently Asked Questions

Why not reset failed attempts on a successful login?

This is very much by design. Otherwise you could brute force the "admin" password by logging in as your own user every 4th attempt.

What is this option about site connection and reverse proxy?

A reverse proxy is a server in between the site and the Internet (perhaps handling caching or load-balancing). This makes getting the correct client IP to block slightly more complicated.

The option default to NOT being behind a proxy -- which should be by far the common case.

How do I know if my site is behind a reverse proxy?

You probably are not or you would know. We show a pretty good guess on the option page. Set the option using this unless you are sure you know better.

Can I whitelist my IP so I don't get locked out?

First please consider if you really need this. Generally speaking it is not a good idea to have exceptions to your security policies.

That said, there is now a filter which allows you to do it: limit_login_whitelist_ip.

Example:

function my_ip_whitelist($allow, $ip) {
     return ($ip == 'my-ip') ? true : $allow;
}
add_filter('limit_login_whitelist_ip', 'my_ip_whitelist', 10, 2);

Note that we still do notification and logging as usual. This is meant to allow you to be aware of any suspicious activity from whitelisted IPs.

I locked myself out testing this thing, what do I do?

Either wait, or:

If you have ftp / ssh access to the site rename the file wp-content/plugins/limit-login-attempts/limit-login-attempts.php to deactivate the plugin.

If you have access to the database (for example through phpMyAdmin) you can clear the limit_login_lockouts option in the wordpress options table. In a default setup this would work: UPDATE wp_options SET option_value = '' WHERE option_name = 'limit_login_lockouts'.

How many IPs are logged?

By default 250.

That said, there is now a filter which allows you to do it: limit_login_log_max_ips.

Setting the value to 0 means no limits.

Example:

function limit_login_log_unlimited_ips($max_ips) {
     return 0;
}
add_filter('limit_login_log_max_ips', 'limit_login_log_unlimited_ips', 10, 2);

Releases

5 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
1.0.1 latest
Jan 22, 2026 9mo ago
limit-login-attempts-ng-1.0.1.zip
101
Aug 7, 2025 1 year ago
limit-login-attempts-ng-1.0.0.zip
52
Aug 6, 2025 1 year ago
limit-login-attempts-ng-0.0.5.zip
0
Aug 6, 2025 1 year ago
limit-login-attempts-ng-0.0.4.zip
1
Jul 31, 2025 1 year ago
limit-login-attempts-0.0.1.zip
0

Active-site estimate ≈50 comes from the median of recent superseded releases. Method.

A grade

Security

Limit Login Attempts NG 1.0.1 · audited by WP Registry

No security issues found.

Audited release
1.0.1
Findings
none
Worst severity
—
Content hash
2dddf02290aafb79a7b3de1e…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.