Security Ninja – WordPress Security & Firewall

WordPress security plugin with free 8G firewall/WAF, 50+ security tests, vulnerability and core scanning, events logging, and AI-powered security repo …

v5.289cleverpluginsUpdated Added 7k+ installs92% rating
29
Score
149
Errors
347
Warnings
+0
Change

Category Scores

Security0
Repo77
Performance100
Maintainability39

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

496 findings

Security

231

12 issue groups

Maintainability

192

11 issue groups

I18n

60

1 issue group

Supply Chain

2

1 issue group

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.65
Category
Maintainability
Occurrences
65
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().63
Category
Maintainability
Occurrences
63
Severity
warning

Sample message

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

ERRORI18nMissing Translators CommentA 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.60
Category
I18n
Occurrences
60
Severity
error

Sample message

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.

ERRORSecuritySQL query is not preparedUse placeholders and $wpdb->prepare(); found !==42
Category
Security
Occurrences
42
Severity
error

Sample message

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

WARNINGSecurityRequest data is not unslashed$_POST['action_filter'] not unslashed before sanitization. Use wp_unslash() or similar38
Category
Security
Occurrences
38
Severity
warning

Sample message

$_POST['action_filter'] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_POST['hash']32
Category
Security
Occurrences
32
Severity
warning

Sample message

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

WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.28
Category
Security
Occurrences
28
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInterpolated SQL is not preparedUse placeholders and $wpdb->prepare(); found interpolated variable $blocked_placeholders at "SELECT COUNT(*) FROM {$table} WHERE module = 'security_ninja' AND action IN ($blocked_placeholders) AND timestamp >= %s"21
Category
Security
Occurrences
21
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable $blocked_placeholders at "SELECT COUNT(*) FROM {$table} WHERE module = 'security_ninja' AND action IN ($blocked_placeholders) AND timestamp >= %s"

WARNINGMaintainabilityNon-prefixed hook nameHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "authenticate".21
Category
Maintainability
Occurrences
21
Severity
warning

Sample message

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

WARNINGSecurityDatabase parameter is not escapedUnescaped parameter $table used in $wpdb->get_results()\n$table assigned unsafely at line 133.20
Category
Security
Occurrences
20
Severity
warning

Sample message

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

Show 15 more
ERRORSecurityOutput is not escaped16
Category
Security
Occurrences
16
Severity
error

Sample message

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

ERRORMaintainabilitywp function not compatible with requires wp15
Category
Maintainability
Occurrences
15
Severity
error

Sample message

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

WARNINGMaintainabilityNon-prefixed global variable12
Category
Maintainability
Occurrences
12
Severity
warning

Sample message

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

WARNINGSecurityMissing nonce verification12
Category
Security
Occurrences
12
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput is not validated8
Category
Security
Occurrences
8
Severity
warning

Sample message

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

ERRORSecurityDatabase parameter is not escaped7
Category
Security
Occurrences
7
Severity
error

Sample message

Unescaped parameter $count_query used in $wpdb->get_var()\n$count_query assigned unsafely at line 426.

WARNINGMaintainabilitySchema Change5
Category
Maintainability
Occurrences
5
Severity
warning

Sample message

Attempting a database schema change is discouraged.

WARNINGSecurityReplacements Wrong Number4
Category
Security
Occurrences
4
Severity
warning

Sample message

Incorrect number of replacements passed to $wpdb->prepare(). Found 1 replacement parameters, expected 2.

WARNINGMaintainabilityDiscouraged PHP function3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

The use of function set_time_limit() is discouraged

WARNINGSecurityUnfinished Prepare3
Category
Security
Occurrences
3
Severity
warning

Sample message

Replacement variables found, but no valid placeholders found in the query.

ERRORMaintainabilityForbidden PHP function found2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

The use of function proc_open() is forbidden

ERRORMaintainabilitydate date2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

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

WARNINGMaintainabilityNon-prefixed constant2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

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

WARNINGMaintainabilityNot In Footer2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

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.

ERRORSupply ChainHidden files included2
Category
Supply Chain
Occurrences
2
Severity
error

Sample message

Hidden files are not permitted.

External Connections

Not analyzed yet.

Score History

First score snapshot

v5.289

29

Latest

Findings
496
Errors
149
Warnings
347
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

29 nodes

Related Plugins

Dam Spam

1k+ active installs

100
Login Security Captcha

10k+ active installs

100
Remove XML-RPC Methods

1k+ active installs

100
Stop XML-RPC Attacks

6k+ active installs

100
AntiVirus

30k+ active installs

99