Introducción:
En el desarrollo de plugins de WordPress, una medida de seguridad clave para proteger tu sitio contra ataques malintencionados, como la falsificación de solicitudes entre sitios (CSRF), es el uso de “nonces”. Nonces, acrónimo de “Numbers Used Once” (números utilizados una vez), aseguran que una acción específica proviene de una fuente auténtica y de confianza, y evita solicitudes duplicadas o malintencionadas. En este tutorial, te guiare a través del proceso de utilización de nonces en el desarrollo de un plugin de WordPress.

Creación de Nonces en WordPress:
- Crear un nonce:
Para crear un nonce en WordPress, la función wp_create_nonce()
se utiliza generalmente. Esta función necesita una cadena (string) como argumento, que se usa para generar el nonce:
$nonce = wp_create_nonce( 'my_action' );
En este ejemplo, ‘my_action’ es un identificador único para la acción que estás protegiendo y el nonce generado se asigna a la variable $nonce
.
- Adjuntar el nonce a un formulario:
Luego de generar el nonce, puedes anexarlo a un formulario utilizando un campo oculto. De este modo, cuando el formulario se envíe, el nonce se enviará junto con él:
echo '<input type="hidden" name="my_nonce" value="' . esc_attr( $nonce ) . '">';
En este ejemplo, el nonce se inserta en un campo de formulario oculto llamado ‘my_nonce’.
- Crear un campo de formulario nonce:
Además, WordPress proporciona una función wp_nonce_field()
para simplificar la creación de campos de formulario nonce:
wp_nonce_field( 'my_action', 'my_nonce', true, true );
En este caso, ‘my_action’ es la acción que se protege, ‘my_nonce’ es el nombre del campo de formulario nonce. Los dos argumentos booleanos finales indican que se debe incluir un campo de referer y que el campo del formulario se debe mostrar directamente.
Verificación de Nonces en WordPress:
Una vez que se ha enviado el formulario y se ha recibido el nonce, debes verificarlo para asegurarte de que es válido.
- Recuperar el nonce:
Puedes recuperar el nonce enviado a través de la superglobal $_POST
:
$nonce = $_POST['my_nonce'];
Aquí, se recupera el nonce del campo de formulario ‘my_nonce’.
- Verificar el nonce:
Para verificar la validez del nonce, puedes usar la función wp_verify_nonce()
. Esta función necesita dos argumentos: el nonce que se está verificando y el identificador único de la acción para la cual se creó el nonce:
if ( ! wp_verify_nonce( $nonce, 'my_action' ) ) {
die( 'Security check failed!' );
}
Si la verificación del nonce falla, la ejecución del script se detiene y se muestra un mensaje de error.
Conclusión:
El uso correcto de nonces en WordPress es esencial para la protección de tu sitio contra solicitudes maliciosas. Al usar nonces en tu plugin de WordPress, puedes asegurarte de que todas las acciones provienen de una fuente confiable y se utilizan una sola vez, reforzando así la seguridad general de tu sitio. Siempre recuerda probar tus nonces en un entorno de desarrollo antes de implementarlos en tu sitio en producción.
Suscripción al Newsletter
Si estás interesado en aprender más sobre WordPress, no olvides suscribirte a nuestro blog para recibir las últimas noticias y consejos sobre WordPress, alojamiento web.
¿Necesitas un Hosting para tu Web?
¿Necesitas ayuda con un Proyecto Web o un Plugin a Medida?
Si ¿Necesitas ayuda con algún proyecto web? No dudes en contactarme desarrollo soluciones completas y personalizadas con WordPress y PHP, con herramientas y procesos modernos, utilizando HTML, CSS, SCSS, PHP, JavaScript, Bootstrap y más… Si ¿Estás listo? ¡Envíame un mensaje y hablemos de tu proyecto web!