web-dev-qa-db-fra.com

Quand dois-je utiliser et vérifier nonce?

Je développe un site WordPress qui publie un certain nombre d'appels ajax de jquery vers PHP et renvoie des données de PHP à jquery.

J'ai besoin de savoir quand dois-je utiliser et vérifier nonce?

1
Trello

Vous utiliseriez un nonce pour aider à vérifier que la demande provenait d'une page générée par votre site Web.

Si vous vérifiez un nonce fourni avec une demande AJAX, il y a de fortes chances que la demande provienne du front-end de votre site, où wp_create_nonce() a été exécutée, plutôt qu'un bot, une application tierce ou un script malveillant envoyant une demande à votre fichier admin-ajax.php.

Prenez note de ce message de la documentation cependant (c'est moi qui souligne):

Ils aident à protéger contre plusieurs types d'attaques, y compris CSRF, mais ne protègent pas contre les attaques de relecture car ils ne sont pas vérifiés pour une utilisation unique. Les nonces ne doivent jamais être invoqués pour l'authentification ou l'autorisation, le contrôle d'accès. Protégez vos fonctions en utilisant current_user_can (), supposez toujours que les nonces peuvent être compromis .

Ils sont donc loin d'être la seule chose que vous devez utiliser pour sécuriser vos demandes, mais ils peuvent fournir une couche supplémentaire pour certains types d'attaques.

2
Jacob Peattie

Les nonces doivent être utilisés pour vérifier intention de l'utilisateur, en particulier sur les actions destructrices.

Imaginez qu'il existe un lien sur lequel l'utilisateur peut cliquer pour supprimer un message. L'utilisateur peut le faire, donc quand il clique, un message est supprimé.

Imaginez maintenant quelqu'un d'autre astuces utilisateur en cliquant sur ce lien (regardez cette photo de chat!). L'utilisateur toujours peut le faire, donc du point de vue de l'accès, il est autorisé à le faire et un message est toujours supprimé. Mais ce n'était pas leur intention de supprimer quoi que ce soit dans cette situation.

Nonce ajoute un niveau de protection dans ces situations en limitant l'action à un utilisateur spécifique dans un laps de temps spécifique. Si nonce est utilisé, ce nonce très spécifique doit être utilisé pour inciter l'utilisateur à entreprendre une action.

2
Rarst