An extremely powerful antispam plugin that blocks spam-bots without annoying captcha images.
Category Scores
Top Issues by Category
i18n432
security340
maintainability97
Issues Details
905 issues found in latest scan
The $domain parameter must be a single text string literal. Found: $this->PLUGIN_SLUG
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"'$hiddenInputName'"'.
Processing form data without nonce verification.
$_GET['blackListPageNumber'] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a non-sanitized input variable: $_POST[$hiddenInputName]
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.
Use placeholders and $wpdb->prepare(); found $arrSelectedIds
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Processing form data without nonce verification.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
print_r() found. Debug code should not normally be used in production.
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.
Unescaped parameter $gdbcOldTableName used in $wpdb->get_results()\n$gdbcOldTableName assigned unsafely at line 184.
Use placeholders and $wpdb->prepare(); found interpolated variable $gdbcOldTableName at "DELETE FROM $gdbcOldTableName WHERE Id IN ("
Detected usage of a possibly undefined superglobal array index: $_POST['orderBy']. Check that the array index exists before using it.
mt_rand() is discouraged. Use the far less predictable wp_rand() instead.
The $text parameter must not contain interpolated variables or expressions. Found: $settingsPageUrl
Function "mb_strlen()" requires WordPress 4.2.0, but your plugin minimum supported version is WordPress 4.0.0.
The $text parameter must be a single text string literal. Found: "Brute Force attack detected on " . MchGdbcWpUtils::getCurrentBlogLink()
No PHP code was found in this file and short open tags are not allowed by this install of PHP. This file may be using short open tags but PHP does not allow them.
Attempting a database schema change is discouraged.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.WP.I18n.NonSingularStringLiteralDomain | ERROR | The $domain parameter must be a single text string literal. Found: $this->PLUGIN_SLUG | 382 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"'$hiddenInputName'"'. | 111 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 58 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['blackListPageNumber'] not unslashed before sanitization. Use wp_unslash() or similar | 49 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_POST[$hiddenInputName] | 37 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | 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. | 21 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $arrSelectedIds | 20 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 20 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 20 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 19 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 18 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 15 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 14 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 11 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 10 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | 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. | 10 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $gdbcOldTableName used in $wpdb->get_results()\n$gdbcOldTableName assigned unsafely at line 184. | 9 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $gdbcOldTableName at "DELETE FROM $gdbcOldTableName WHERE Id IN (" | 9 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['orderBy']. Check that the array index exists before using it. | 7 |
| WordPress.WP.AlternativeFunctions.rand_mt_rand | ERROR | mt_rand() is discouraged. Use the far less predictable wp_rand() instead. | 7 |
| WordPress.WP.I18n.InterpolatedVariableText | ERROR | The $text parameter must not contain interpolated variables or expressions. Found: $settingsPageUrl | 6 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "mb_strlen()" requires WordPress 4.2.0, but your plugin minimum supported version is WordPress 4.0.0. | 6 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: "Brute Force attack detected on " . MchGdbcWpUtils::getCurrentBlogLink() | 4 |
| Internal.NoCodeFound | WARNING | No PHP code was found in this file and short open tags are not allowed by this install of PHP. This file may be using short open tags but PHP does not allow them. | 3 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 3 |
Latest Snapshot
Findings
905
Errors
646
Warnings
259
Score History
First score snapshot
First scan completed Jun 20, 2026
v3.1.43 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v3.1.43
25
Latest
- Findings
- 905
- Errors
- 646
- Warnings
- 259
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 25 | 905 | 646 | 259 | v3.1.43 | 2.0.0 | 2026.06-mvp-static-v2 |