Wordfence Login Security

Secure your website with Wordfence Login Security, providing two-factor authentication, login and registration CAPTCHA, and XML-RPC protection.

v1.1.16wfryanUpdated 2026-04-29Added May 30, 201970k+ installs78% rating100% support resolved
25
Score
248
Errors
418
Warnings
+0
Change

Category Scores

Security0
Repo72
Performance98
Maintainability22

Top Issues by Category

security441
maintainability204
supply_chain2
i18n1

Issues Details

666 issues found in latest scan

ERROR160
WordPress.Security.EscapeOutput.OutputNotEscaped

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

WARNING74
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

WARNING72
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING40
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING40
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING40
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

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

WARNING39
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET['action']

WARNING27
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable {$blogIdsQuery} at "SELECT * FROM {$wpdb->blogs} WHERE blog_id IN ({$blogIdsQuery}) AND archived = 0 AND spam = 0 AND deleted = 0"

WARNING27
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR26
WordPress.DB.PreparedSQL.NotPrepared

Use placeholders and $wpdb->prepare(); found $c

WARNING21
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $table used in $wpdb->get_col()\n$table assigned unsafely at line 593.

ERROR19
missing_direct_file_access_protection

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

WARNING13
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

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

ERROR11
WordPress.Security.EscapeOutput.ExceptionNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Failed to acquire lock {$this->key}"'.

ERROR8
PluginCheck.CodeAnalysis.Heredoc.NotAllowed

Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead

WARNING6
WordPress.DB.SlowDBQuery.slow_db_query_meta_key

Detected usage of meta_key, possible slow query.

ERROR5
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $c used in $wpdb->get_results()\n$c used without escaping.

WARNING4
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;js_escape&quot;.

WARNING4
WordPress.WP.EnqueuedResourceParameters.NotInFooter

In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.

ERROR3
WordPress.DateTime.RestrictedFunctions.date_date

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

WARNING2
WordPress.DB.DirectDatabaseQuery.SchemaChange

Attempting a database schema change is discouraged.

WARNING2
WordPress.DB.SlowDBQuery.slow_db_query_meta_value

Detected usage of meta_value, possible slow query.

ERROR2
hidden_files

Hidden files are not permitted.

ERROR2
wp_function_not_compatible_with_requires_wp

Function "get_user_count()" requires WordPress 4.8.0, but your plugin minimum supported version is WordPress 4.7.0.

WARNING1
PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound

load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.

Latest Snapshot

Findings

666

Errors

248

Warnings

418

Score History

First score snapshot

First scan completed Jun 20, 2026

v1.1.16 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v1.1.16

25

Latest

Findings
666
Errors
248
Warnings
418
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins