web-dev-qa-db-fra.com

Les nonces peuvent être réutilisés plusieurs fois? Problème de bug/sécurité?

J'ai lu que les nonces sont destinés à n'être utilisés qu'une seule fois et qu'après une requête ajax, vous devriez émettre un nouveau nonce. Ainsi, lors de la prochaine requête ajax, un nouveau nonce serait envoyé au serveur.

Cependant, je viens de tester des requêtes ajax répétées en utilisant le même jeton de nonce et, pour chaque requête, wp_verify_nonce renvoyait true sur le même jeton, ce qui signifie qu'il pouvait être réutilisé des dizaines de fois.

Est-ce intentionnel ou un bug?

Dois-je toujours émettre de nouveaux messages avec chaque demande ajax, ou le même peut-il continuer à fonctionner pour toutes les demandes futures?

7
Click Upvote

Dans WordPress, les nonces sont spécifiques à l'utilisateur, à l'action en cours et à l'heure. En ce qui concerne l'heure, un nonce est valide pendant 24 heures et change toutes les 12 heures. Ceci est considéré comme un compromis acceptable, car utiliser un nombre réel utilisé une fois impliquerait l’ajout d’un système de suivi et le stockage des nonces utilisés.

Les nonces sont également hachés et la constante NONCE_SALT fera également partie du nonce résultant. Changer le NONCE_SALT invalidera immédiatement tous les nonces.

Vous devriez publier un nouveau nonce à chaque fois. Ainsi, si le calendrier ou la méthodologie doit être ajusté à l'avenir, votre code continuera à le gérer correctement.

11
Otto