La directive générale est que nous devrions effacer toutes les entrées d'utilisateurs avant de les utiliser.
Maintenant, ma question est de savoir si cela s’applique ou non au nonce.
Laquelle est correcte?
wp_verify_nonce( sanitize_text_field( $_GET['some_nonce'] ), 'some_nonce' );
ou
wp_verify_nonce( _GET['some_nonce'], 'some_nonce' );
La désinfection est nécessaire lorsque vous insérez une entrée utilisateur dans la base de données ou la sortie au format HTML, etc. Ici, vous effectuez simplement une comparaison de chaîne.
La fonction wp_verify_nonce
vérifie la valeur $nonce
comme ceci:
if ( hash_equals( $expected, $nonce ) ) {
return 1;
}
Pour cela, vous n'avez pas besoin de désinfection. Donc, ce qui va bien:
wp_verify_nonce( $_GET['some_nonce'], 'some_nonce' );