Puedo ver que wp_nonce_field genera un valor en el campo oculto.
<input type="hidden" id="message-send" name="message-send" value="cabfd9e42d" />
Pero wp_verify_nonce no está usando ese valor por lo que puedo decir, pero puedo estar equivocado.
Parece que está usando un token de sesión para la verificación.
$expected = substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce'), -12, 10 );
if ( hash_equals( $expected, $nonce ) )
{ return 1; }
Entonces, ¿qué sentido tiene tener un atributo de valor en el campo oculto?
nonce
verification
ed-ta
fuente
fuente

$noncevalor allí: el cheque devuelve falso si$noncefalta el valor.$noncevalor en esta comparación:hash_equals( $expected, $nonce )Respuestas:
TL; DR
En resumen,
wp_verify_nonce()usa ese valor porque espera ese valor como su primer argumento.wp_verify_nonce()argumentoswp_verify_nonce()recibe 2 argumentos:$nonce$actionEl valor en el campo oculto (
'cabfd9e42d'en su ejemplo) representa el$nonce.El primer argumento es el nonce, y proviene de la solicitud
De hecho,
wp_verify_nonce()hay que usarlo así:Entonces, el primer argumento pasado
wp_verify_nonce()es exactamente el valor que está presente en el campo oculto.2do argumento: el
wp_create_nonce()métodoCon respecto al segundo argumento, depende de cómo se construye el valor nonce.
Por ejemplo, si lo hiciste:
Entonces necesitas hacer:
Entonces, el segundo argumento es para lo que se utilizó como argumento
wp_create_nonce().2do argumento: el
wp_nonce_field()métodoSi creó el nonce usando
wp_nonce_field()como:Luego debe verificar el nonce de esta manera:
Entonces, esta vez, la acción es lo que se pasa como primer argumento
wp_nonce_field().Resumen
Para pasar la
wp_verify_nonce()validación, debe pasar 2 argumentos a la función, uno es el valor en el campo oculto nonce, el otro es la acción y depende de cómo se construyó el valor nonce.fuente