WordPress.Security.NonceVerification.Recommended
Nonce verification recommended
The code reads request data in a place where Plugin Check recommends a nonce check.
Why It Shows Up
The scan saw request handling that may not always mutate state, but still looks like a user-triggered action that should usually be protected by a nonce.
Why It Matters
Adding a nonce reduces accidental or forged requests and documents that the action is expected to originate from the plugin UI.
How to Fix
- For admin forms and action links, add and verify a nonce.
- For AJAX handlers, use `check_ajax_referer()`.
- For public read-only endpoints, document why a nonce is not required and keep input validation strict.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #3751 | Sitemap Generator | 50 | 60 | 26 | 3k+ | Output is not escaped | ||
| #3752 | Pago por Redsys | 50 | 44 | 59 | 700 | Text Domain Mismatch | ||
| #3753 | PostmagThemes Demo Import | 50 | 191 | 114 | 1k+ | Text Domain Mismatch | ||
| #3754 | Product Open Pricing (Name Your Price) for WooCommerce | 50 | 105 | 37 | 6k+ | Text Domain Mismatch | ||
| #3755 | Razorpay Payment Links for WooCommerce | 50 | 16 | 34 | 1k+ | Nonce verification recommended | ||
| #3756 | Section Widget | 50 | 24 | 35 | 500 | Nonce verification recommended | ||
| #3757 | Send Emails with Mandrill | 50 | 36 | 141 | 6k+ | Non-prefixed global variable | ||
| #3758 | Server Info – System Health & Diagnostics Suite | 50 | 15 | 46 | 3k+ | Input is not sanitized | ||
| #3759 | Simple User Listing | 50 | 27 | 56 | 900 | Non-prefixed global variable | ||
| #3760 | Sözleşmeler | 50 | 6 | 36 | 1k+ | Input is not sanitized | ||
| #3761 | Table Addons for Elementor | 50 | 92 | 29 | 20k+ | wp function not compatible with requires wp | ||
| #3762 | BestWebSoft's Twitter | 50 | 477 | 174 | 900 | Text Domain Mismatch | ||
| #3763 | Ultimate Floating Widgets – Make popup sidebars | 50 | 48 | 14 | 3k+ | Output is not escaped | ||
| #3764 | Ultimate WooCommerce Brands | 50 | 87 | 12 | 400 | Text Domain Mismatch | ||
| #3765 | User Activity Tracking and Log | 50 | 30 | 263 | 2k+ | Non-prefixed global variable | ||
| #3766 | Calculadora de Frete e Campos Checkout para o Brasil | 50 | 1 | 138 | 5k+ | Missing nonce verification | ||
| #3767 | WP Hide Show Featured Image | 50 | 36 | 5 | 4k+ | Unsafe printing function | ||
| #3768 | WRC Pricing Tables – Responsive CSS3 Pricing Tables | 50 | 5 | 96 | 2k+ | Missing nonce verification | ||
| #3769 | Cart Popup for WooCommerce | 51 | 9 | 115 | 9k+ | Non-prefixed global variable | ||
| #3770 | Address Geocoder | 51 | 12 | 18 | 500 | Output is not escaped | ||
| #3771 | Adjust Admin Categories | 51 | 30 | 12 | 10k+ | Output is not escaped | ||
| #3772 | AVIF Uploader | 51 | 49 | 44 | 4k+ | Missing Arg Domain | ||
| #3773 | Feeds for TikTok – Display Video Feeds in Grid Layouts | 51 | 18 | 59 | 1k+ | Request data is not unslashed | ||
| #3774 | Bootstrap Modals | 51 | 43 | 8 | 1k+ | Output is not escaped | ||
| #3775 | Category Archive Widget | 51 | 54 | 2 | 700 | Output is not escaped | ||
| #3776 | Counter Box – Add Countdowns, Timers & Dynamic Counters to WordPress | 51 | 3 | 116 | 1k+ | Missing nonce verification | ||
| #3777 | Custom Post Type UI | 51 | 16 | 40 | 1m+ | Non-prefixed hook name | ||
| #3778 | Dynamic Pricing and Discount Rules | 51 | 24 | 65 | 1k+ | Non Singular String Literal Text | ||
| #3779 | Dolyame Payment gateway | 51 | 122 | 10 | 700 | Text Domain Mismatch | ||
| #3780 | Easy Search Replace – Find & Replace Text/HTML/URLs, Remove Footer Credit | 51 | 6 | 61 | 500 | Input is not sanitized | ||
| #3781 | Gravatar Enhanced – Avatars, Profiles, and Privacy | 51 | 38 | 48 | 100k+ | Dynamic hook name | ||
| #3782 | Gutenverse – WordPress Blocks, Page Builder & Site Editor | 51 | 17 | 47 | 20k+ | Non-prefixed hook name | ||
| #3783 | Interactive Globes – 3D World Maps | 51 | 24 | 104 | 400 | Non-prefixed global variable | ||
| #3784 | Juicer.io: Effortlessly embed, curate, and aggregate social media feeds into your website | 51 | 44 | 34 | 9k+ | Output is not escaped | ||
| #3785 | Menu Icons by Themeisle – Add Icons to Navigation Menus | 51 | 34 | 22 | 100k+ | Output is not escaped | ||
| #3786 | Mintpay | 51 | 14 | 35 | 600 | Nonce verification recommended | ||
| #3787 | OnSale Page for WooCommerce | 51 | 30 | 44 | 2k+ | Text Domain Mismatch | ||
| #3788 | POLi Payments for WooCommerce | 51 | 62 | 26 | 500 | Text Domain Mismatch | ||
| #3789 | Quotes and Tips by BestWebSoft | 51 | 485 | 190 | 1k+ | Text Domain Mismatch | ||
| #3790 | SePay Gateway | 51 | 12 | 39 | 1k+ | Nonce verification recommended | ||
| #3791 | Popular Brand Icons – Simple Icons | 51 | 20 | 12 | 3k+ | Output is not escaped | ||
| #3792 | StoryChief | 51 | 12 | 55 | 1k+ | Input is not sanitized | ||
| #3793 | The Cache Purger | 51 | 16 | 16 | 1k+ | Non Singular String Literal Text | ||
| #3794 | Trustpilot Reviews | 51 | 14 | 52 | 30k+ | Missing nonce verification | ||
| #3795 | Visual Sitemap | 51 | 23 | 6 | 400 | Output is not escaped | ||
| #3796 | VK Filter Search | 51 | 35 | 71 | 6k+ | Nonce verification recommended | ||
| #3797 | Payment Gateway Payoneer For WooCommerce | 51 | 9 | 35 | 900 | Input is not validated | ||
| #3798 | Swift SMTP (formerly Welcome Email Editor) | 51 | 12 | 62 | 7k+ | Missing nonce verification | ||
| #3799 | WPCafe – Restaurant Menu, Online Food Ordering & Table Booking System | 51 | 22 | 38 | 5k+ | Output is not escaped | ||
| #3800 | WP Counter Up – Animated Number Counter & Milestone Showcase | 51 | 18 | 239 | 1k+ | Non-prefixed global variable |