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 |
|---|---|---|---|---|---|---|---|---|
| #401 | Media Library Assistant | 23 | 1,131 | 3,759 | 70k+ | Nonce verification recommended | ||
| #402 | MediaPress | 23 | 904 | 583 | 4k+ | Output is not escaped | ||
| #403 | Order Bump for WooCommerce | 23 | 1,720 | 1,562 | 600 | Output is not escaped | ||
| #404 | Moloni | 23 | 901 | 356 | 2k+ | Missing Arg Domain | ||
| #405 | MotoPress Appointment Booking | 23 | 2,362 | 857 | 2k+ | Text Domain Mismatch | ||
| #406 | Restaurant Menu and Food Ordering | 23 | 385 | 853 | 2k+ | Non-prefixed global variable | ||
| #407 | MP3 Audio Player – Music Player, Podcast Player & Radio by Sonaar | 23 | 4,065 | 488 | 20k+ | Text Domain Mismatch | ||
| #408 | MStore API – Create Native Android & iOS Apps On The Cloud | 23 | 618 | 764 | 3k+ | SQL query is not prepared | ||
| #409 | MPG – Multiple Page Generator, Bulk Landing Pages & Programmatic SEO | 23 | 485 | 580 | 2k+ | Missing nonce verification | ||
| #410 | MyWorks Sync for WooCommerce & QuickBooks Online | 23 | 2,292 | 9,101 | 5k+ | Non-prefixed global variable | ||
| #411 | ND Shortcodes | 23 | 621 | 2,426 | 20k+ | Non-prefixed global variable | ||
| #412 | News Kit Addons For Elementor | 23 | 69 | 419 | 4k+ | Post Not In exclude | ||
| #413 | Simple Newsletter Plugin – Noptin | 23 | 71 | 593 | 10k+ | Non-prefixed global variable | ||
| #414 | Next Active Directory Integration | 23 | 683 | 284 | 2k+ | Exception output is not escaped | ||
| #415 | Nirweb support | 23 | 254 | 617 | 800 | Request data is not unslashed | ||
| #416 | NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization | 23 | 316 | 639 | 90k+ | Output is not escaped | ||
| #417 | Ocean Extra | 23 | 1,494 | 2,107 | 500k+ | Non-prefixed global variable | ||
| #418 | Issues and Series for Newspapers, Magazines, Publishers, Writers | 23 | 346 | 710 | 2k+ | Nonce verification recommended | ||
| #419 | Patchstack – WordPress & Plugins Security | 23 | 107 | 489 | 50k+ | Missing nonce verification | ||
| #420 | Photo Gallery by 10Web – Mobile-Friendly Image Gallery | 23 | 4,159 | 1,553 | 100k+ | Output is not escaped | ||
| #421 | Gallery PhotoBlocks | 23 | 904 | 1,345 | 3k+ | Non-prefixed global variable | ||
| #422 | ExpressTechSoftwares Discord Add-on for Paid Memberships Pro | 23 | 454 | 449 | 700 | Text Domain Mismatch | ||
| #423 | AI Popup | 23 | 1,224 | 636 | 400 | Text Domain Mismatch | ||
| #424 | Post to Google My Business (Google Business Profile) | 23 | 845 | 1,452 | 10k+ | Non-prefixed global variable | ||
| #425 | Postie | 23 | 408 | 259 | 10k+ | Output is not escaped | ||
| #426 | PowerPress Podcasting plugin by Blubrry | 23 | 4,815 | 2,452 | 20k+ | Output is not escaped | ||
| #427 | Pricing Table by Supsystic | 23 | 1,299 | 447 | 10k+ | Non Singular String Literal Domain | ||
| #428 | Primary Addon for Elementor | 23 | 765 | 1,306 | 7k+ | Non-prefixed global variable | ||
| #429 | Print Anywhere & Create PDFs of Order Receipts, Invoices, Labels & More. | 23 | 1,485 | 444 | 1k+ | Text Domain Mismatch | ||
| #430 | Print My Blog – Print, PDF, & eBook Converter WordPress Plugin | 23 | 1,077 | 1,660 | 8k+ | Non-prefixed global variable | ||
| #431 | Protect Admin | 23 | 606 | 1,300 | 2k+ | Non-prefixed global variable | ||
| #432 | Radio Station by netmix® – Manage and play your Show Schedule in WordPress! | 23 | 934 | 3,619 | 1k+ | Non-prefixed global variable | ||
| #433 | Read More Without Refresh | 23 | 955 | 1,347 | 20k+ | Non-prefixed global variable | ||
| #434 | Read More WP | 23 | 570 | 1,311 | 1k+ | Non-prefixed global variable | ||
| #435 | Real Estate Manager – Property Listing and Agent Management | 23 | 606 | 2,301 | 600 | Non-prefixed global variable | ||
| #436 | Real 3D Flipbook – 3D FlipBook, PDF FlipBook, PDF Viewer, PDF Embedder | 23 | 908 | 1,377 | 10k+ | Non-prefixed global variable | ||
| #437 | Redirection | 23 | 523 | 457 | 100k+ | Non-prefixed global variable | ||
| #438 | Request a Quote – Quote Forms for Any WordPress Site | 23 | 240 | 1,099 | 900 | Non-prefixed hook name | ||
| #439 | Restaurant & Cafe Addon for Elementor | 23 | 889 | 1,326 | 1k+ | Non-prefixed global variable | ||
| #440 | Revive.so – Bulk Rewrite and Republish Blog Posts | 23 | 332 | 228 | 700 | Text Domain Mismatch | ||
| #441 | Robo Gallery – Photo & Image Slider | 23 | 1,291 | 530 | 40k+ | Output is not escaped | ||
| #442 | Manago AI & Leadoo AI | 23 | 644 | 429 | 1k+ | Unsafe printing function | ||
| #443 | Schema | 23 | 1,173 | 245 | 40k+ | Text Domain Mismatch | ||
| #444 | SecuPress with Simple SSL – Simple and Performant Security | 23 | 1,697 | 1,601 | 40k+ | Non-prefixed global variable | ||
| #445 | Secure Custom Fields | 23 | 240 | 1,370 | 80k+ | Non-prefixed function | ||
| #446 | SEO Redirection Plugin – 301 Redirect Manager | 23 | 272 | 727 | 10k+ | Non-prefixed global variable | ||
| #447 | Seraphinite Post .DOCX Source | 23 | 1,156 | 110 | 900 | Output is not escaped | ||
| #448 | Seriously Simple Podcasting | 23 | 548 | 629 | 30k+ | Non-prefixed hook name | ||
| #449 | Shipment Tracker for Woocommerce | 23 | 477 | 576 | 2k+ | Missing Arg Domain | ||
| #450 | Local Google Analytics for WordPress – caches external requests | 23 | 551 | 199 | 3k+ | Output is not escaped |