J'essaie de comprendre comment fonctionnent les nonces WordPress en termes de sécurité. nonce
représente un nombre utilisé une fois, mais selon WordPress, il peut être valide jusqu'à 24 heures, ce qui n'a aucun sens. Il pourrait être utilisé 9999 fois pendant cette période (par le même client).
Je pensais qu'un nonce WordPress est vraiment un numéro utilisé une fois et qu'un nonce n'est valable que pour une utilisation ponctuelle, mais ce n'est pas le cas. Je suppose que pour une meilleure sécurité, un numéro d’utilisation ponctuelle serait préférable, par exemple. vous avez un système de commentaires et quelqu'un clique sur "répondre" à deux reprises. Au lieu d'insérer le commentaire deux fois, il est inséré une fois, en raison du nonce valide unique (le même) donné dans les deux requêtes.
Est-ce que je me trompe? Quel est le but de ces nonces WordPress?
Si vous lisez Wordpress Nonces dans Codex , ils l’ont assez bien expliqué. Voici quelques points clés:
nonces
et user cookies
.Je pense que le point 3 est, en bref, comment il fonctionne avec WordPress. Ils ont mentionné que la fonction current_user_can()
est utilisée au lieu de wordpress nonces.
En ce qui concerne le but, je crois que cela sert le but fondamental de la sécurité multicouche. Lisez ceci Les nonces sont-elles inutiles
Comme vous l'avez bien vu, wordpress n'utilise pas de NONCE littéraux, mais une approximation suffisante.
Le problème d'implémentation de la définition littérale de nonce est qu'il est nécessaire de suivre tous les nombres que vous avez générés, en particulier s'ils sont vraiment aléatoires. Cela signifie de stocker dans la base de données le nonce généré, ce qui signifie qu’il y aura une écriture dans la base de données à chaque actualisation de la page d’administration, ce qui pourrait surcharger le serveur.
Le compromis Wordpress consiste à générer le nonce en tant que valeur hachée du jour actuel, en utilisant une clé de hachage secrète et un contexte sensible à l'utilisateur. De cette façon, la fenêtre d'une éventuelle attaque est limitée à 24 heures et il est difficile de deviner les inconnus. Il y a toujours un problème d'interception si votre site est sur HTTP et que vous faites n'importe quel administrateur sur des réseaux WiFi publics, mais dans ce cas toute votre authentification est exposée et la non-exposition est le moindre de vos problèmes.