Yes, nonces should always be used when an authenticated user is triggering an action via a GET/POST request. One of the main purposes of the nonce is it ensure that the current user actually intended to trigger this request. It prevents the security vulnerability known as Cross-Site Request Forgery (CSRF), where an attacker can trick an authenticated user into taking an action they didn’t intend to. Checking for a valid nonce prevents this, because the attacker cannot guess the nonce, so they can’t forge a form submission request and trick an admin into submitting it.
Note that the the attacker doesn’t have to have access to the form itself, as your plugin presents it, in order to perform this attack. They can create their own imitation form or trigger the request in another way.
Related Posts:
- wp_create_nonce function doesn’t work inside a plugin?
- Where should my plugin POST to?
- Security checking in meta_box save is reluctant?
- Nonce failing on form submission
- wp_verify_nonce fails always
- How can i see/log all requests coming from a registration form (not from the UI)?
- How to verify/test that a custom built wordpress theme is as secure as possible?
- What security concerns should I have when setting FS_METHOD to “direct” in wp-config?
- What Are Security Best Practices for WordPress Plugins and Themes? [closed]
- Are WordPress Plugins essential?
- I found this in a plugin. What does it do? is it dangerous?
- What are the common security flaws I need to look for? [closed]
- Contact form 7 select box different value-text than content-text in option [closed]
- Disabled plugins are they security holes – rumor or reality?
- What could a hacker do with my wp-config.php
- How Can I Securely Implement a Password-less Login Feature?
- Security and .htaccess
- Why “Contact Form 7” doesn’t update PHPmailer library?
- Are there procedures to prevent malicious plugin updates?
- Nonces and Cache
- Is wp_nonce_field vulnerable if you know the action name?
- Secure WordPress paid plugin
- How to make media upload private? [duplicate]
- Does WordPress contain “default” anti-SQL injection code that responds with a 404 error?
- Simple form that saves to database
- What does a security risk in a plugin look like?
- WordPress Capabilities: edit_user vs edit_users
- Let readers suggest edits from the frontend
- Should we use plugins that aren’t available from the official WordPress site?
- Get selected values from checkboxes and radio buttons via Gravity Forms gform_after_submission hook [closed]
- How to check plugins for malicious code?
- How to properly secure my WordPress installation?
- Why allow overriding crucial pluggable functions wp_verify_nonce and wp_create_nonce?
- Write mysql credentials in plugin
- Site is continuously accessing by several IPs
- Form submit from wordpress plugin
- Create user assessment and use results in sql query
- Saving custom form fields
- Validating values using Settings API?
- using .htaccess only for wordpress security no plugins
- How do I convince this button to do something when it is clicked?
- SWF in wordpress post
- wordpress option page data from select form is not saving to database
- Linking Plugin Files to WP
- Adding a Filter to Sidbar Login Plugin to Change Login Button Lable
- Create plugin with form in post and submit it to specific form
- Unwanted Links and Spam WordPress Pages and Posts
- Carrying information from button click into form [closed]
- Link Forms on WordPress
- Custom Form only for admin
- Capturing POST data
- County Finder form/plugin?
- Problem with permissions in wp-content/plugins
- Creating fields in the database
- Allow users to enter and edit data in one-to-many configuration
- Undefined variable _POST
- Plugin Admin Page Ajax-Admin call returning 0, URL set correctly. Implemented localized scripts but did not fix it
- How to prevent page load on form submission
- File permissions for wp-minify plugin
- How to develop an extension for a simple form post and post back? [closed]
- What is the recommended way to be notified of security updates to my plugins? [closed]
- My WP site and password was hacked, what to do? [closed]
- How to resolve these findings from security audit
- Can’t edit Contact Us form on front page
- Plugin Beauty Contact Popup Form with while loop
- Build a Boat Form Plugin [closed]
- How to get an error message if a form is empty (plugin: Post for site) [closed]
- How I can hide my wp folders from Inspect Element (Developer Tools)
- Is it possible to set different payment gateway on each Gravity Forms form? [closed]
- How to Find WordPress site has backdoor login Codes
- How to delete Password Protected posts cookies when a user logged out from the site
- How to rename files during upload to a random string?
- how to show selected options drop down menu values in attributes field in after saving post.php
- Redirecting to page on form submit – Revue plugin
- How to Allow Users to Select Recipients In a WordPress Comment section?
- WP Donation Form with custom payment API
- Form with response button after on table after submission
- Tips on using a custom template with Ultimate Member
- How can I add a zip code service availability checker in WordPress without Woocommerce? [closed]
- Stop the user if login from the cookies
- WordPress User Registration/ Sign Up -> Able to take Paid Certification Courses & keep track of Completed Certificates
- Can’t save formdata in DB
- Block Root REST API Route using custom &/or iThemes
- Display file contents within Plugin
- Is it a good idea to restrict the REST API
- Is Nonce Verification (CSRF) required for WordPress Custom Bulk User Actions?
- Gravityforms login form custom redirect if form not submitted
- i need to resive data external api and show user
- WordPress.Security.NonceVerification.Recommended
- Trying to Find the PHP File/Function that Handles a Specific Form Action URL
- I am trying to add form using ACF plugin and acf_form() function, but my user fields dont show up properly
- Issue using form in Google app in mobile
- Secure way to add JS Script to WordPress filesystem
- add to cart linking to add to cart page
- Form submission issue in wordpress admin (custom plugin) using $_GET for searching & filtering
- WP Form Date Field – Remove Day option
- Bullet proofing a server with 150 WP insallations
- Is there a WordPress plugin or solution that allows to set up forms with a total control over markup
- Code Snippets security when selecting “only run on front end”
- Missing Contact Form/Form Default Plugin in WordPress