Limit Login Attempts Security – Login Security, 2FA, Firewall, Brute Force Prevention

WordPress login security with brute force protection, Two-factor authentication (2FA/MFA), firewall, IP/country blocking, and login monitoring

v3.3.1WPChefUpdated 2026-06-16Added Aug 3, 20161m+ installs98% rating100% support resolved
25
Score
621
Errors
602
Warnings
+0
Change

Category Scores

Security0
Repo94
Performance100
Maintainability3

Top Issues by Category

security731
maintainability371
i18n101

Issues Details

1,223 issues found in latest scan

ERROR290
WordPress.Security.EscapeOutput.UnsafePrintingFunction

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

WARNING253
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$active_app".

ERROR195
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$action['label']'.

WARNING76
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET['tab'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING60
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING50
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_POST['custom_error_message']

ERROR46
WordPress.WP.I18n.MissingTranslatorsComment

A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.

WARNING45
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "LLA_DIGEST_DEFINITIONS".

WARNING33
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_POST['active_app']. Check that the array index exists before using it.

ERROR28
WordPress.WP.I18n.NonSingularStringLiteralText

The $text parameter must be a single text string literal. Found: $admin_email

WARNING25
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING17
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING17
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

ERROR16
WordPress.WP.I18n.MissingArgDomain

Missing $domain parameter in function call to esc_attr_e().

ERROR8
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

ERROR7
WordPress.WP.I18n.NonSingularStringLiteralDomain

The $domain parameter must be a single text string literal. Found: $text_domain

ERROR6
WordPress.DateTime.RestrictedFunctions.date_date

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

WARNING5
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "authenticate".

WARNING5
WordPress.PHP.DevelopmentFunctions.error_log_error_log

error_log() found. Debug code should not normally be used in production.

ERROR4
WordPress.WP.AlternativeFunctions.curl_curl_setopt

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERROR4
WordPress.WP.AlternativeFunctions.parse_url_parse_url

parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.

WARNING4
WordPress.WP.EnqueuedResourceParameters.MissingVersion

Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.

ERROR4
WordPress.WP.I18n.UnorderedPlaceholdersText

Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'By signing up you agree to our <a href="%s" class="llar_turquoise">terms of service</a> and <a href="%s" class="llar_turquoise">privacy policy.</a>'.

WARNING3
WordPress.DB.SlowDBQuery.slow_db_query_meta_key

Detected usage of meta_key, possible slow query.

ERROR2
WordPress.DB.PreparedSQLPlaceholders.LikeWildcardsInQuery

SQL wildcards for a LIKE query should be passed in through a replacement parameter. Found: LIKE '%administrator%'.

Latest Snapshot

Findings

1,223

Errors

621

Warnings

602

Score History

First score snapshot

First scan completed Jun 19, 2026

v3.3.1 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 19, 2026

v3.3.1

25

Latest

Findings
1,223
Errors
621
Warnings
602
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins