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 |
|---|---|---|---|---|---|---|---|---|
| #2151 | Media Library Downloader | 35 | 21 | 16 | 4k+ | Output is not escaped | ||
| #2152 | MeetingHub – Webinar & Meeting Plugin for Zoom, Google Meet, Webex, Microsoft Teams, & Jitsi Meet | 35 | 37 | 313 | 400 | Non-prefixed global variable | ||
| #2153 | Restaurant Menu – Food Ordering System – Table Reservation | 35 | 317 | 186 | 8k+ | Unsafe printing function | ||
| #2154 | Mighty Pros & Cons | 35 | 12 | 6 | 800 | Text Domain Mismatch | ||
| #2155 | Mini Ajax Cart for WooCommerce | 35 | 297 | 240 | 900 | Text Domain Mismatch | ||
| #2156 | MONEI Payments for WooCommerce | 35 | 15 | 65 | 500 | Non-prefixed hook name | ||
| #2157 | mosparo Integration | 35 | 114 | 301 | 900 | Missing nonce verification | ||
| #2158 | Never Let Me Go | 35 | 34 | 47 | 400 | Non-prefixed global variable | ||
| #2159 | NGG Smart Image Search | 35 | 298 | 155 | 400 | Output is not escaped | ||
| #2160 | Nginx Cache Controller | 35 | 79 | 96 | 1k+ | Text Domain Mismatch | ||
| #2161 | Ni WooCommerce Sales Report | 35 | 236 | 256 | 500 | Text Domain Mismatch | ||
| #2162 | Nooz | 35 | 287 | 108 | 500 | Text Domain Mismatch | ||
| #2163 | Noted! | 35 | 5 | 22 | 1k+ | Non-prefixed global variable | ||
| #2164 | One Page Express Companion | 35 | 132 | 65 | 10k+ | Output is not escaped | ||
| #2165 | ONet Regenerate Thumbnails | 35 | 190 | 64 | 1k+ | Text Domain Mismatch | ||
| #2166 | Plugin Ongkos Kirim JNE Tiki Sicepat Wahana J&T POS for Woocommerce | 35 | 117 | 144 | 2k+ | Output is not escaped | ||
| #2167 | Order Delivery Date for WooCommerce | 35 | 2,075 | 73 | 10k+ | wp function not compatible with requires wp | ||
| #2168 | Orderable – Restaurant & Food Ordering System | 35 | 12 | 324 | 5k+ | Non-prefixed global variable | ||
| #2169 | OSM Map Widget for Elementor | 35 | 183 | 14 | 9k+ | Text Domain Mismatch | ||
| #2170 | OT Flatsome Vertical Menu | 35 | 126 | 26 | 10k+ | Text Domain Mismatch | ||
| #2171 | Page Optimize | 35 | 70 | 41 | 200k+ | Non Singular String Literal Domain | ||
| #2172 | Paybox WooCommerce Payment Gateway | 35 | 165 | 88 | 500 | Non Singular String Literal Domain | ||
| #2173 | Paytm Payment Gateway | 35 | 92 | 104 | 3k+ | Missing Arg Domain | ||
| #2174 | Paytrail for WooCommerce | 35 | 28 | 46 | 3k+ | Non-prefixed global variable | ||
| #2175 | Perfecty Push Notifications | 35 | 204 | 213 | 4k+ | SQL query is not prepared | ||
| #2176 | Pie Calendar – Events Calendar Made Simple | 35 | 83 | 53 | 1k+ | Text Domain Mismatch | ||
| #2177 | Planyo online reservation system | 35 | 64 | 90 | 400 | Output is not escaped | ||
| #2178 | Plausible Analytics | 35 | 244 | 61 | 10k+ | Exception output is not escaped | ||
| #2179 | Pochipp | 35 | 27 | 102 | 20k+ | Non-prefixed global variable | ||
| #2180 | Poptin – Email Marketing Automation, Newsletter & Exit Pop Ups, Email Popups | 35 | 168 | 29 | 20k+ | Output is not escaped | ||
| #2181 | Popup with fancybox | 35 | 196 | 168 | 900 | Unsafe printing function | ||
| #2182 | Post Content Shortcodes | 35 | 205 | 56 | 2k+ | Output is not escaped | ||
| #2183 | Post Draft Preview | 35 | 49 | 69 | 700 | Text Domain Mismatch | ||
| #2184 | Post List Featured Image | 35 | 112 | 100 | 900 | Output is not escaped | ||
| #2185 | Post Meta Data Manager | 35 | 30 | 112 | 1k+ | Non-prefixed global variable | ||
| #2186 | Post Password Token | 35 | 132 | 38 | 600 | Text Domain Mismatch | ||
| #2187 | Posts Table with Search & Sort | 35 | 143 | 33 | 3k+ | Text Domain Mismatch | ||
| #2188 | Product Input Fields for WooCommerce | 35 | 18 | 84 | 4k+ | Non-prefixed function | ||
| #2189 | Min Max Step Quantity Limits Manager for WooCommerce | 35 | 67 | 158 | 3k+ | Non-prefixed global variable | ||
| #2190 | Protect the Children! | 35 | 2 | 34 | 1k+ | Missing nonce verification | ||
| #2191 | Publitio | 35 | 47 | 26 | 400 | curl curl setopt | ||
| #2192 | Push Notifications by LaraPush | 35 | 32 | 76 | 5k+ | Non-prefixed global variable | ||
| #2193 | Push7 | 35 | 45 | 17 | 700 | Short PHP open tag found | ||
| #2194 | Quran multilanguage Text & Audio | 35 | 177 | 166 | 500 | Output is not escaped | ||
| #2195 | ReactPress – Create React App for WordPress | 35 | 26 | 43 | 3k+ | Request data is not unslashed | ||
| #2196 | Real Time Validation for Gravity Forms | 35 | 185 | 30 | 2k+ | Output is not escaped | ||
| #2197 | Really Simple Google Tag Manager (GTM) | 35 | 115 | 15 | 4k+ | Text Domain Mismatch | ||
| #2198 | Related Posts for WordPress | 35 | 207 | 180 | 10k+ | Output is not escaped | ||
| #2199 | Remove Admin Toolbar | 35 | 13 | 7 | 600 | Missing direct file access protection | ||
| #2200 | Remove Dashboard Access | 35 | 16 | 23 | 30k+ | wp function not compatible with requires wp |