I wouldn’t say security concern – since you’re using this plugin within the admin (I presume after the user has been authenticated i.e. after admin_init
), then already you’ve got protection against any Jon Doe posting a form to your script.
What it does provide, is an additional layer of authentication. All it really boils down to is sending a ‘secret’ along with the form, and then checking for it’s existence (and that it matches) before continuing.
For an attacker, they’d need to know this secret in order to breach, for example, using CSRF or XSS.
This is the very nature of how WordPress nonces work. In fact you’d be a lot better off using these instead of test_form. They go one step better in that they’re secrets that expire, so the window for an attacker is made even smaller.
Check out Jaquith’s article on Nonces.
Related Posts:
- How to store username and password to API in wordpress option DB?
- In Which Contexts are Plugins Responsible for Data Validation/Sanitization?
- How to properly validate data from $_GET or $_REQUEST using WordPress functions?
- Nonces can be reused multiple times? Bug / Security issue?
- Can someone explain what wp_session_tokens are, and what are they used for?
- WordPress and PHP Sessions – Security and Performance
- What is the difference between esc_html and wp_filter_nohtml_kses?
- Nonce in settings API with tabbed navigation
- Log in from one wordpress website to another wordpress website
- Escaping built-in WP function return strings
- What is the difference between strip_tags and wp_filter_nohtml_kses?
- WP Cron doesn’t save or in post body
- WordPress restrict plugin file direct access
- Plugin development: is adding empty index.php files necessary?
- Confusion on WP Nonce usage in my Plugin
- Coding a plugin on WordPress; when should I sanitize? [duplicate]
- Correct way check nonce (security) using old Options API
- Why do I need to check if wp_nonce_field() exists before using it
- Is there any way to check for user login and send him to login?
- WordPress security issue to output data from user input from theme option form
- Verify if user is wordpress logged in from another app since wordpress 4.0
- Secure Pages Best Practice
- Securing/Escaping Output of file content – reading via fread() in PHP
- best way to make a WordPresss multisite that is secure but at the same time supporting my plugin development efforts
- Video Security just like facebook [closed]
- How to connect my wordpress plugin to a remote database securely?
- wp_nonce_field displaying twice
- Is it necessary to do validation again when retrieving data from database?
- Checking a WordPress for OWASP top 10 vulnerabilities [closed]
- How do I have now a duplicated user entry if this is not allowed (and I cannot replicate it)?
- add_submenu_page hooked function must explicitly check user capabilities – why?
- Are there any security risks when submitting data-attribute data through AJAX?
- Why would you use esc_attr() on internal functions?
- Is it possible to use WP-CLI in a plugin (or theme)?
- Secruity Questions on a timer
- Using HTML links within translatable string
- How can I save a password securely as a settings field
- Using password protection to load different page elements?
- HTML Elements in my WP Plugin being generated in JS. Security and Translated Text Question about this method being used
- How to store sensitive user data (passwords)
- How do I make secure API calls from my WordPress plugin?
- esc_attr() on hard coded string
- how to add security questions on wp-registration page and validate it
- Experts opinions needed: How (in)secure is this approach?
- What is more secure checking capabilities of user or checking role of user in WordPress plugin development
- Data Validation, dynamically generated fields (select for example)
- esc_url, esc_url_raw or sanitize_url?
- Change the_title() of a page dynamically
- Adding more options to the instance of an image. (Attachment Display Settings)
- What is wrong with using add_option with Multisite instead of add_blog_option in a plugin
- Trouble with Transient API when W3TC is activated [closed]
- WordPress REST API call generates nonce twice on every call
- Filters ‘request’ and ‘parse_query’ not firing in sites.php nor link-manager.php
- How to trap “Publish” button to check for meta box validation?
- How to use filter hook ‘post_updated_messages’ in coherence with action hook ‘save_post’
- $wp_filesystem returns NULL. What are the dependencies?
- wp_mail not recognizing cc and bcc headers
- set_sale_price in WooCommerce [closed]
- Adding extra pages to plugin that shouldn’t appear in the sidebar
- jquery document ready function not being called [closed]
- How do I include background images in my stylesheets in a plugin?
- Custom plugin icon not showing up
- I’m designing a plugin to create database indexes. Suggestions?
- $reverse_top_level works the opposite way according to Codex?
- How to serve different thumbnails/images depending on users browser/platform
- How to export post meta with images in wordpress
- Parse form values before sending to options.php
- My WordPress plugin cannot load my JavaScript file
- Password field is empty when using wp_signon();
- Show error message after exception handled
- Plugin – Make sure jquery is loaded in my settings page plus my JS file
- wp_editor add media button not working
- Plugin Development – Class Constructor Not Firing wp_enqueue_style action hook
- Alternative functions for mysql_free_result and mysql_ping in wordpress functions
- Getting a WordPress Debug Strategy
- Add function after the_content
- How remove trashed WooCommerce orders from wc_get_orders() result?
- How do I get variables from my plugin’s settings page?
- Unexpected T_FUNCTION
- How to avoid conflicts with db.php / $wpdb and other plugins that decide to use them?
- How To Protect Plugin Display From Being Affected By Theme’s CSS
- Is there an action_filter hook to add content before the post title?
- How to correctly escape an echo
- Securing a plugin pop-up window
- Add quick edit functionnality to plugin table
- Hide / show settings field based on other field’s value
- using wordpress acf shortcods in tables goes outside the table
- $_SESSION inside php function executed by AJAX
- Two same AJAX calls – one is working, other doesn’t
- remove different admin menu for specific users
- add pagination to wp_remote_get
- Shortcode from a plugin not working
- How to get option values without requiring wp-load?
- Problem with baseurl and interaction with plugin
- Downloading Generated XML File
- Can’t get query string in ajax call
- How to use permalink query to go to specific tabs in posts
- Conditional query tags do not work before the query is run. Before then, they always return false
- Send Webhook when post-status is publish or trash
- Call API on post save/update and show the result in admin area