Guide des nonces dans WordPress

La sécurité est un sujet vital pour tous les propriétaires de sites Web. Bien qu’il existe de nombreuses stratégies pour protéger votre site Web, l’utilisation de nonces dans WordPress ne doit pas être négligée. Il s’agit de l’une des fonctionnalités de sécurité les plus utilisées et évite toute une série de problèmes potentiels.

Un nonce est un «numéro utilisé une fois» et protège les formulaires et les URL contre les individus malveillants et autres utilisations abusives. Ces chiffres fonctionnent comme des valeurs d’identification que les navigateurs des utilisateurs devront afficher afin d’obtenir l’autorisation d’effectuer des actions sensibles.

Guide des nonces dans WordPress

Dans cet article, nous allons voir comment fonctionnent les nonces dans WordPress et comment les créer. Nous verrons ensuite comment vérifier un nonce. Commençons !

Comment fonctionnent les nonces dans WordPress?

Le but principal d’un nonce est de protéger votre site Web WordPress contre les attaques malveillantes, telles que les falsifications de demandes intersites (CSRF). Ce type d’attaque incite les utilisateurs à soumettre un formulaire ou à cliquer sur un lien nuisible à votre site Web. Pour protéger votre site, WordPress vérifie la valeur nonce et ne permet à l’action de se terminer que si cette valeur est correcte.

Les nonces font déjà partie des fonctionnalités de WordPress et vous n’avez pas besoin de les ajouter aux éléments générés par WordPress. Cela signifie que les actions clés telles que l’ajout et la modification de publications sont automatiquement protégées.

Lorsqu’un nonce est utilisé, il a une durée de vie par défaut de 24 heures. Passé ce délai, le nonce ne peut plus être utilisé pour vérifier l’action pour laquelle il a été défini. Cependant, cette durée de vie peut être ajustée par les administrateurs du site Web.

L’une des attaques CSRF les plus courantes contre lesquelles les nonces protègent est la suppression malveillante des comptes d’utilisateurs. Après avoir implémenté un nonce, votre écran d’administration générera une URL pour la suppression du compte. WordPress ajoutera un nonce à la fin de cette URL, qui ressemblera à ceci:

http://yourdomain.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315

Si un attaquant tente de remplacer l’ID utilisateur par une autre valeur, telle que « user = 8 », le nonce sera invalide. La suppression du compte échouera et une page d’erreur interdite 403 s’affichera. Cela rend beaucoup plus difficile pour les individus malveillants d’attaquer le contenu de votre site.

Il est important de savoir que les nonces peuvent protéger votre site Web, mais vous devez également comprendre comment les mettre en œuvre. Bien qu’ils soient déjà actifs pour les fonctionnalités WordPress par défaut, vous devrez peut-être les implémenter manuellement pour vos thèmes et plugins.

Création d’un nonce

Pour créer un nonce, vous devez ajouter une fonction au code de votre site Web. Tous les codes de création nonce sont placés dans le fichier functions.php. Pour ouvrir ce fichier, accédez à Apparence> Éditeur de thème dans votre tableau de bord WordPress. À droite, cliquez sur functions.php pour ouvrir l’éditeur de fichiers.

Les nonces sont implémentés séparément pour les URL, les formulaires et les actions. Pour créer une action nonce, ajoutez le code suivant à ce fichier:

$ nonce = wp_create_nonce (‘$ action’);

La section «$ action» du code doit être ajustée pour refléter l’action que vous souhaitez que le nonce vérifie. Un exemple serait d’utiliser l’action « delete-post », qui configure le nonce pour vérifier les utilisateurs qui tentent de supprimer des messages.

Pour créer un nonce pour une URL, vous pouvez utiliser le code suivant:

$ nonce = wp_nonce_url ();

Dans les crochets, vous devrez indiquer les arguments de la fonction. Il s’agit de l’URL nue et de la chaîne pour les actions utilisateur. La chaîne doit être spécifique à un seul utilisateur, afin d’améliorer la sécurité du nonce.

Si vous souhaitez créer un nonce pour supprimer un compte d’utilisateur, vous pouvez utiliser cet extrait:

$ nonce = wp_nonce_url ($ bare_url, ‘delete-user _’. $ user-> ID);

WordPress définira par défaut le nom du nonce sur «_wpnonce», mais vous pouvez le mettre à jour en ajoutant le nom que vous avez choisi à la fin de la chaîne ci-dessus.

Pour créer un nonce pour un formulaire, incluez ce code:

$ nonce = wp_nonce_field ();

Dans les crochets, vous devrez ajouter une chaîne pour les actions de l’utilisateur. Une fois cela fait, la fonction crée deux champs masqués dans le formulaire, le premier contenant la valeur de hachage nonce. Le deuxième champ est l’URL actuelle. La fonction finale devrait ressembler à ceci:

$ nonce = wp_nonce_field (‘remove-comment _’. $ comment_id);

Cette fonction nonce aura également le nom nonce WordPress par défaut. Cependant, c’est aussi quelque chose que vous pouvez modifier si vous préférez.

Vérification d’un nonce

Après avoir ajouté un nonce à votre site Web WordPress, il est important de le vérifier. Cela garantit que le nonce fonctionne correctement et sécurise votre site Web.

Différentes méthodes sont utilisées pour vérifier le nonce des URL et des formulaires. Pour vérifier un URL nonce, ajoutez le code suivant au fichier functions.php:

wp_verify_nonce ($ nonce, $ action);

Dans cette fonction, ajustez «$ nonce» au nom du nonce que vous souhaitez vérifier, tel que «delete-user». Ensuite, modifiez la chaîne «$ action» à l’heure spécifique à laquelle le nonce est créé. Lorsque la fonction s’exécute, elle renvoie «false» si le nonce n’est pas valide.

Si le nonce est valide, d’autre part, la fonction renverra soit 1 ou 2. Cela vous indique l’âge du nonce. Une valeur égale à 1 signifie que le nonce a été créé au cours des 12 dernières heures. Une valeur égale à 2 signifie que le nonce a été créé il y a plus de 12 heures, mais il y a moins de 24 heures.

Si vous avez ajouté un nonce à un formulaire, le code suivant est requis pour le vérifier:

check_admin_referer ($ action, $ nonce);

Si la valeur nonce est valide, le formulaire fonctionnera comme prévu. Cependant, si le nonce n’est pas valide, le navigateur de l’utilisateur le redirigera vers une page d’erreur interdite 403.

Créez des expériences numériques sécurisées sur WP Engine

La sécurité est vitale pour un site Web stable et les nonces ajoutent une couche de protection supplémentaire. Pour les implémenter, il vous suffit d’ajouter du code à votre fichier functions.php. Le code utilisé varie en fonction du type de nonce que vous souhaitez créer et de l’action que vous souhaitez protéger.

Bien que la création et l’implémentation de nonces améliorent la sécurité du site, il existe également d’autres protocoles de sécurité à prendre en compte. Heureusement, WP Engine offre certaines des meilleures ressources de sécurité pour les utilisateurs et les développeurs. Cela vous laisse plus de temps pour vous concentrer sur la perfection de votre site WordPress !

Tags: