Hébergement site web Tunisie , serveur vps cloud – Zenhosting

final-logo

Découvrez nos offres d'hébergement Cloud

Hébergement Web Simple, rapide et sécurisé. Confiez-nous l’hébergement de votre site web dès maintenant.

hébergement web

Qu’est-Ce Que WordPress Nonce Et Comment Ça Marche ?

wordpress+noncce+direct+admin

En cryptographie, un nonce fait référence à un “numéro utilisé une fois” et généré pour protéger les formulaires et les URL contre les attaques de piratage malveillant. Il se compose généralement de lettres et de chiffres aléatoires et a une durée de vie par défaut d’un jour, servant d’outil d’authentification pour certaines actions et entrées.

WordPress fait partie des nombreuses plates-formes qui adoptent cette fonctionnalité de sécurité, bien qu’en la modifiant légèrement. Que vous soyez un propriétaire de site cherchant à améliorer la sécurité de votre plateforme ou un développeur WordPress souhaitant protéger vos plugins contre les utilisateurs malveillants, cet article vous aidera à mieux comprendre.

Que signifie réellement WordPress nonce ?

WordPress Nonce est essentiellement le terme utilisé pour le nombre utilisé une fois . Il s’agit d’une valeur de chaîne, une clé unique temporaire qui est générée automatiquement par WordPress et agit comme un jeton de sécurité spécial pour vérifier si vous êtes la même personne qui effectue une action ou quelqu’un d’autre lors de la soumission d’un formulaire, de l’ajout d’un message, de la suppression d’un message, etc.

Pourquoi devrions-nous utiliser WordPress nonce ?

Les nonces WordPress protègent la plateforme contre diverses attaques malveillantes, notamment la falsification de requête intersite (CSRF). Cette cyberattaque exploite les vulnérabilités de sécurité de WordPress pour inciter les utilisateurs à soumettre des demandes indésirables, de la modification des informations de connexion des utilisateurs à la suppression de comptes d’utilisateurs.

Voici un exemple d’URL générée par WordPress lorsqu’un utilisateur souhaite supprimer des publications.

http://yourwebsite.com/wp-admin/post.php?post=123&action=trash

Si vous exécutez cette URL, WordPress vérifiera son cookie d’authentification pour vérifier la demande de suppression de la publication “123”.

Le problème est qu’une attaque CSRF peut facilement déguiser ce lien de requête en quelque chose d’autre. Lorsqu’un utilisateur clique dessus, le navigateur joint le cookie d’authentification et le fait ressembler à une demande valide. En conséquence, le site WordPress exécutera la requête HTTP malveillante, mettant en péril le contenu du site.

Les nonces empêchent les attaques CSRF en ajoutant une couche de protection supplémentaire à l’URL. Voici un exemple d’URL générée par un site Web WordPress avec une vérification nonce.

http://yourwebsite.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204

Si vous essayez d’accéder à cette URL sans que le nonce correct soit généré par WordPress, vous verrez un 403 Forbidden accompagné du message “Êtes-vous sûr de vouloir faire cela ?” Message d’erreur.

Gardez à l’esprit que les nonces WordPress, contrairement aux vrais nonces, peuvent être utilisés plus d’une fois tant qu’ils sont toujours valides. Les nonces WordPress sont également générés spécifiquement pour chaque session, ce qui signifie que leur valeur ne sera plus valide une fois qu’un utilisateur se connecte ou se déconnecte de la page.

Comment créer un nonce dans WordPress ?

Avant de vous présenter un exemple complet de la façon d’implémenter un nonce dans un formulaire ou dans une URL, laissez-nous comprendre comment le nonce fonctionne dans WordPress.

Il y a trois étapes que nous devons suivre pour implémenter un nonce dans un plugin WordPress ou un thème :

Comment créer un nonce ?

Pour créer un nonce, il existe un nom de fonction « wp_create_nonce ($action) » , qui génère et renvoie une valeur unique basée sur l’heure actuelle et le $action.
Le paramètre “$action” est facultatif mais  recommandé , le paramètre $action fait référence à ce qui va se passer.

$nonce= wp_create_nonce('delete-post');

Comment passer un nonce via un formulaire ou une URL ?

Comment passer un nonce dans les URL.

<a href="monplugin.php?_wpnonce=<?php echo $nonce; ?>">

Comment passer un nonce dans Forms.

<form method="post"><?php wp_nonce_field( 'name_of_my_action', 'name_of_nonce_field' );?>
<!-- quelques entrées ici ... -->   
</form>

Nous utilisons “wp_nonce_field($action,$name)”  pour passer un nonce à travers les formulaires. La fonction wp_nonce_field() générera un champ d’entrée masqué qui stocke une valeur nonce et peut être récupéré ultérieurement.

Le paramètre “name_of_my_action” est le contexte dans lequel vous utilisez le champ nonce et “name_of_nonce_field” est tout nom que vous souhaitez spécifier. La valeur par défaut est « _wpnonce » . Il est préférable d’utiliser les paramètres $action et $name pour une meilleure sécurité.

Comment vérifier un nonce ?

Après l’avoir mis dans le formulaire, vous pouvez l’obtenir comme ceci :

if ( isset( $_POST['name_of_nonce_field'] ) &&
wp_verify_nonce( $_POST['name_of_nonce_field'], 'name_of_my_action' ) ) {

// traite les données du formulaire

} autre {
print 'Désolé, votre nonce n'a pas vérifié. C'est un site WordPress sécurisé. allez prendre un café !!';
sortir;
}

Exemple:

Dans cet exemple, nous créons un formulaire et un champ nonce intégré. Ce formulaire peut être utilisé pour votre page de contact ou tout ce que vous voulez pour votre site où vous recevez les contributions des utilisateurs.

Le code HTML du formulaire est (notez la fonction wp_nonce_field ):

<form id="form">
<?php wp_nonce_field( 'contact_form_submit', 'cform_generate_nonce' );?>
            <label>Nom</label> <input type="text" name="nom" class="text" id="nom"><br>
            <label>E-mail</label> <input type="email" name="email" class="text" id="email"><br>

            <label>Sujet</label> <input type="text" name="sujet" class="text" id="sujet"><br>
            <label>Message</label><textarea id="message" class="textarea" name="message"></textarea>
            <input name="action" type="hidden" value="simple_contact_form_process" />
            <input type="submit" name="submit_form" class="button" value="envoyer un message" id="sendmessage">
            <div class="formmessage"><p></p></div>
        </form>

Donc, vous avez votre formulaire de contact prêt et vous voulez maintenant prendre les données des entrées de formulaire et les traiter. Les entrées de formulaire sont les portes où la plupart des attaques malveillantes se produisent et les pirates exécutent tout ce qu’ils veulent. Ainsi, vous devez correctement désinfecter vos entrées qui sont très importantes pour la sécurité de votre site Web.

Voici comment vous allez vérifier nonce dans votre formulaire de contact.

<?php

if(isset($_POST['submit_form'])) {
  if(!wp_verify_nonce('cform_generate_nonce','contact_form_submit')){
      wp_die('Notre site est protégé !!');
   }autre{
      // traiter ici votre formulaire de contact avec les entrées de nettoyage appropriées.
  }
}

?>

 

Cet Article est utile ? Votez
0 / 5 4

Your page rank:

Facebook
Twitter
LinkedIn
Pinterest

Plus à explorer

brotli+gzip
Technologie

Brotli et Gzip pour accélérer votre site web

Vous cherchez un moyen gratuit d’accélérer votre site ? Un moyen gratuit pour les propriétaires de sites Web d’accélérer les choses est d’activer la compression

seo image
Seo

Comment améliorer l’impact SEO de vos images ?

L’utilisation d’images sur les sites Web est très courante. Cependant, tout comme il est important de sélectionner les images appropriées, il est important de sélectionner

 20% Réduction

Bénéficiez de 20 % de réduction pour votre 1 achat
Confirmer
*Offre valable uniquement pour les nouveaux inscrits
close-link

Mailsuite fonctionne sur Tous vos appareils

Prenez votre communication avec vous en installant des applications complètes sur votre appareil Android, iOS windows et MacOs

Mailsuite fonctionne sur Tous vos appareils

Prenez votre communication avec vous en installant des applications complètes sur votre appareil Android, iOS windows et MacOs