Archivo de la etiqueta: formularios

Seguridad en los formularios de wordpress utilizando nonce

 

Hola a todos:

Hoy vamos a ver la manera de añadir más seguridad a nuestros formularios en wordpress utilizando la técnica nonce.

Cuando tenemos un formulario público donde los usuarios pueden enviar datos siempre es una puerta de entrada  susceptible a ser manipulada maliciosamente.

La palabra “nonce” viene de number use once, es decir número utilizado una sola vez.

Esto nos ofrece una seguridad extra a nuestros formularios ya que entre otras cosas permite verificar el origen de la petición y evitar que los datos enviados sean manipulados maliciosamente.

Esta técnica se puede utilizar  en cualquier lenguaje de programación, wordpress nos facilita esta tarea ofreciéndonos la función wp_create_nonce(), que nos generará un número aleatorio que después nos permitirá validar que la petición viene desde nuestro formulario y desde ningún otro sitio.

Para realizar esta validación utilizamos la función de wordpress wp_verify_nonce().

Veamos con un ejemplo la forma de utilizar nonce:

En primer lugar en nuestro formulario añadiremos un campo oculto que contendrá el valor de nonce generado con la función wp_create_nonce().

<form action="" method="post">
<?php // Generamos el nonce ?>
<?php $nonce = wp_create_nonce( 'miformulario' ); ?>
<input type="hidden" name="_wpnonce" value="<?php echo "{$nonce}"; ?>"/>
Nombre:<input tytpe="text" name="nombre" />
<!-- //  mas campos de mi formulario -->
......
......
</form>

 

Como parametro la funcion wp_create_nonce recible una cadena de caracteres que luego debemos utilizar para verificar el nonce. Yo en este caso le he llamado ‘miformulario’.

Ahora en la parte donde recojas los datos recividos desde el formulario verificamos que el nonce es correcto:

<?php
$nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $nonce, 'miformulario' ) ){
  wp_die( 'nonce no válido' );
}
// Si el nonce es correcto seguimos recogiendo el resto de campos
$nombre = $_POST['nombre'];
//  ...... resto de campos
?>

De esta manera si detecta  que el nonce no es correcto se parara la ejecución mostrando un mensaje de aviso y evitaremos que se ejecute nada indeseado.

Con estos sencillos pasos aportaremos un poco más de seguridad a nuestros formularios en wordpress.

¿Necesitas un presupuesto para un desarrollo WordPress a medida?

¿Quieres un plugin a medida que realice una funcionalidad concreta que necesitas para tu WordPress?

Solicita un presupuesto sin compromiso: