web-dev-qa-db-fra.com

Est-il prudent de supposer qu'un nonce peut être validé plus d'une fois?

D'après ce que j'ai recueilli, une fois qu'un nonce est généré, il est valide pour une réutilisation pendant les 48 prochaines heures.

Est-il prudent de coder en tenant compte de cela? J'écris un plugin qui fait un peu de va-et-vient avec le client via AJAX et je veux savoir si je devrais simplement générer un nonce lorsque la page se charge et l'utiliser pour toutes les communications ou générer un pour chaque demande et l'inclure dans la réponse.

5
Lex R

1, la durée de vie du nonce est d’environ 24 heures par défaut. jetez un oeil à la fonction wp_verify_nonce .

Pour être plus précis, la durée de vie est contrôlée par filtre

apply_filters( 'nonce_life', DAY_IN_SECONDS );

2, si la valeur de la durée de vie vous fait douter s'il s'agit d'un "effet secondaire d'implémentation", vous souhaiterez peut-être add_filter('nonce_life',create_function('$v', 'return 60*5;')); pour réduire la durée de vie à 5 minutes dans mon exemple.

3, si la sécurité de votre plugin vous préoccupe, vous devez utiliser le jeton csrf à la place.

5
Jesse

Les WordPress ne sont pas utilisables une seule fois. Vous pouvez réutiliser le nonce aussi souvent que vous le souhaitez jusqu'à son expiration.

0
Andy