WordPress Security: Utilisez NONCE pour protéger les thèmes et le code du plugin
La protection de la sécurité des thèmes WordPress ou du code plug-in est cruciale et peut effectivement empêcher les attaques des utilisateurs malveillants. Nous avons déjà couvert comment nettoyer, échapper et valider les données du formulaire dans WordPress, et comment utiliser le scanner VIP pour améliorer la qualité des thèmes WordPress. Aujourd'hui, nous explorerons comment nonce (numérique ponctuel) peut aider à garder les thèmes et plugins WordPress.
points clés
- WordPress Nonce, ou "numéro d'utilisation unique", est un jeton de sécurité unique utilisé pour améliorer la sécurité des sites Web WordPress en vérifiant les demandes de l'utilisateur et en empêchant des tentatives malveillantes. Ils sont particulièrement utiles pour prévenir les attaques de contrefa?on de demande de site croisé (CSRF).
- Nonce fonctionne en générant un jeton unique pour chaque session d'utilisateur, soumission de formulaire ou demande AJAX. Ce jeton est ensuite vérifié lors du traitement de la demande, et s'il ne correspond pas, la demande est rejetée. Cela rend difficile pour les attaquants de prédire ou abusent du jeton.
- La création de nonce dans WordPress est réalisée en utilisant la fonction WordPress
wp_create_nonce()
, qui accepte un paramètre de cha?ne unique représentant l'opération à protéger. Vérification NONCE est effectuée en utilisant la fonctionwp_verify_nonce()
, qui accepte deux paramètres: le nonce à vérifier et l'opération associée. - Nonce peut être utilisé pour les demandes AJAX dans WordPress, ajoutant une couche de sécurité supplémentaire pour empêcher les attaques CSRF. NONCE est également spécifique à l'utilisateur, offrant une couche de sécurité supplémentaire en veillant à ce que le nonce créé pour un utilisateur ne soit pas valide pour un autre.
Qu'est-ce que WordPress Nonce?
wordpress nonce est défini comme:
… un ?numéro d'utilisation unique? pour aider à protéger les URL et les formulaires de certains types d'abus (malveillants ou autres). http://www.miracleart.cn/link/c5af1dfde10402285102771ad64b3dac
Alors que dans WordPress, nonce n'est pas un nombre technique (c'est un hachage de lettres et de nombres), cela aide à empêcher les utilisateurs malveillants d'exécuter des actions.
Le travail de WordPress Nonce est divisé en deux parties:
- Créer nonce (valeur de hachage), soumettre par formulaire ou action, et
- Vérifiez NONCE, puis acceptez les données du formulaire ou exécutez l'action.
Par exemple, lorsque vous supprimez un message dans l'écran d'administration WordPress, vous remarquerez que l'URL contient un paramètre _wpnonce
:
http://www.miracleart.cn/link/18175d262a01ebf04bc03e38e48e3ffc
La routine pour supprimer un message vérifiera si le post 542 a une valeur nonce de a03ac85772
avant de supprimer le message. Si nonce n'existe pas ou ne correspond pas à la valeur attendue, le poste ne sera pas supprimé.
Cela empêche les utilisateurs malveillants de supprimer potentiellement un grand nombre de messages. Par exemple, les éléments suivants ne fonctionneront pas car nonce appartient au post ID 542:
http://www.miracleart.cn/link/322d830da1130169fb4ca1c7543799d0 http://www.miracleart.cn/link/dd4143061640d55fb312dd0ce8afa76e http://www.miracleart.cn/link/9e0f9113b44003201076a9fade1b72d8
Voyons maintenant comment implémenter WordPress Nonce dans un plugin.
Configurez notre plugin WordPress
Commen?ons par un plugin de base avec son propre écran de paramètres. L'écran Paramètres a un champ qui peut être soumis et enregistré dans le tableau des options WordPress.
Entrez le code suivant dans un nouveau fichier dans wp-content/plugins/implementing-wordpress-nonces/implementing-wordpress-nonces.php
:
// ... (插件代碼,與原文相同) ...
Activez le plugin via WordPress Management & GT;
Cliquez sur cet élément et vous serez emmené sur l'écran des paramètres, avec un seul champ:
Entrez n'importe quelle valeur, cliquez sur "Enregistrer", si tout fonctionne, vous verrez les informations de confirmation et la valeur que vous venez d'entrer:
démontrer la vulnérabilité de sécurité
http://www.miracleart.cn/link/0e143c3bef0f7759c230664c4dc905f8
Bien que nous puissions utiliser dans notre code au lieu de
pour démontrer plus facilement les problèmes de sécurité), cela n'aide pas - les utilisateurs malveillants peuvent toujours utiliser eux-mêmes ou vous inciter à cliquer sur Le lien vous permet d'envoyer une demande de message à cet écran, ce qui entra?ne une modification des valeurs d'option. $_POST
$_REQUEST
C'est ce qu'on appelle le contrefa?on de demande croisée (ou le CSRF). Les sites Web malveillants, les e-mails, les applications, etc. entra?neront un navigateur Web de l'utilisateur à effectuer des opérations inutiles. $_REQUEST
Protégez nos plug-ins avec nonce
Comme mentionné précédemment, ce processus est divisé en deux étapes: nous devons d'abord créer un nonce qui sera soumis avec notre formulaire. Deuxièmement, nous devons vérifier le nonce lors de la soumission du formulaire.
Pour créer un champ nonce dans notre forme, nous pouvons utiliser wp_nonce_field()
:
Obtenir ou afficher des champs de formulaire cachés nonce ... utilisés pour vérifier que le contenu de la demande de formulaire provient du site actuel, pas ailleurs ...
Ajouter le code suivant au-dessus de notre bouton d'entrée:
// ... (插件代碼,與原文相同) ...
wp_nonce_field
accepter quatre paramètres - les deux premiers sont les plus importants:
-
$action
: Ceci détermine l'opération spécifique que nous exécutons et devrait être unique. Il est préférable d'utiliser le nom du plugin comme préfixe de l'opération, car il peut y avoir plusieurs opérations en cours d'exécution. Dans ce cas, nous enregistrons quelque chose, nous utilisons doncimplementing_wordpress_nonces_save
-
$name
: Ceci détermine le nom du champ caché créé par cette fonction. Comme mentionné ci-dessus, nous avons utilisé le nom du plugin comme préfixe, nous l'avons donc nomméimplementing_wordpress_nonces_nonce
Si nous rechargeons l'écran des paramètres, modifiez notre valeur et cliquez sur Enregistrer, vous remarquerez que la valeur changera toujours. Nous devons maintenant mettre en ?uvre la vérification du champ non-non soumis, en utilisant wp_verify_nonce( $name, $action )
:
Vérifiez que NONCE est correct et n'a pas expiré par rapport à l'opération spécifiée. Cette fonction est utilisée pour vérifier le nonce envoyé dans la demande actuelle, généralement accessible via la variable PHP
$_REQUEST
.
Remplacez la partie "Enregistrer les paramètres" de la fonction admin_screen()
de notre plugin par le code suivant:
wp_nonce_field( 'implementing_wordpress_nonces_save', 'implementing_wordpress_nonces_nonce' );
Ce code effectue les opérations suivantes:
- Tout d'abord, il vérifie si nous avons soumis quelque chose.
- Ensuite, il vérifie si notre champ Nonce existe et, dans l'affirmative, essayez de vérifier la valeur de NONCE en fonction de l'action que nous attendons.
- Si le chèque passe, mettez à jour les options.
- Si le chèque échoue, nous lancerons une erreur 403 avec le message "non valide non -ce spécifié".
Pour vous assurer que notre nonce est créé et vérifié, essayons à nouveau d'accéder à notre URL directe "malveillante":
http://www.miracleart.cn/link/0e143c3bef0f7759c230664c4dc905f8 .
>Si notre nonce est implémenté et est en cours de vérification, vous verrez une notification "non valide de spécification nonce":
... (le reste est le même que le texte d'origine, mais la langue et l'expression sont ajustées en détail pour maintenir l'intention d'origine inchangée) ....
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les fichiers JavaScript de mini-divateur peuvent améliorer la vitesse de chargement du site Web WordPress en supprimant les blancs, les commentaires et le code inutile. 1. Utilisez des plug-ins de cache qui prennent en charge la compression de fusion, tels que W3TotalCache, Activer et sélectionner le mode de compression dans l'option "Minify"; 2. Utilisez un plug-in de compression dédié tel que FastvelocityMinify pour fournir un contr?le plus granulaire; 3. Compressez manuellement les fichiers JS et téléchargez-les via FTP, adapté aux utilisateurs familiers avec les outils de développement. Notez que certains thèmes ou scripts plug-in peuvent entrer en conflit avec la fonction de compression, et vous devez tester soigneusement les fonctions du site Web après l'activation.

Le moyen le plus efficace de prévenir le spam de commentaires est de l'identifier et de l'intercepter automatiquement par des moyens programmatiques. 1. Utilisez des mécanismes de code de vérification (tels que Googler captcha ou hcaptcha) pour distinguer efficacement les humains et les robots, en particulier adaptés aux sites Web publics; 2. Définissez des champs cachés (technologie de miel) et utilisez des robots pour remplir automatiquement les fonctionnalités pour identifier les commentaires du spam sans affecter l'expérience utilisateur; 3. Vérifiez la liste noire des mots clés du contenu des commentaires, filtrez les informations sur les spams par la correspondance des mots sensibles et faites attention à éviter les erreurs de jugement; 4. Jugez la fréquence et la source IP des commentaires, limitez le nombre de soumissions par unité de temps et établissez une liste noire; 5. Utilisez des services anti-spam tiers (comme Akismet, CloudFlare) pour améliorer la précision d'identification. Peut être basé sur le site Web

Lorsque vous développez des blocs Gutenberg, la méthode correcte des actifs d'Enqueue comprend: 1. Utilisez Register_Block_Type pour spécifier les chemins de chemin de l'éditor_script, editor_style et style; 2. Enregistrez les ressources via WP_register_Script et WP_register_style dans Functions.php ou plug-in, et définissez les dépendances et versions correctes; 3. Configurez l'outil de construction pour sortir le format du module approprié et assurez-vous que le chemin est cohérent; 4. Contr?lez la logique de chargement du style frontal via ADD_THEME_SUPPORT ou ENQUEUE_BLOCK_Assets pour s'assurer que la logique de chargement du style frontal est assurée.

La clé pour ajouter des règles de réécriture personnalisées dans WordPress est d'utiliser la fonction add_rewrite_rule et de vous assurer que les règles prennent effet correctement. 1. Utilisez add_rewrite_rule pour enregistrer la règle, le format est add_rewrite_rule ($ regex, $ redirect, $ after), où $ regex est une URL de correspondance d'expression régulière, $ redirect spécifie la requête réelle et $ après contr?le l'emplacement de la règle; 2. Les variables de requête personnalisées doivent être ajoutées via add_filter; 3. Après modification, les paramètres de liaison fixe doivent être rafra?chis; 4. Il est recommandé de placer la règle en ?haut? pour éviter les conflits; 5. Vous pouvez utiliser le plug-in pour afficher la règle actuelle pour plus de commodité

Robots.txt est crucial pour le référencement des sites Web WordPress et peut guider les moteurs de recherche pour craquer un comportement, éviter le contenu en double et améliorer l'efficacité. 1. Les chemins du système de bloc tels que / wp-admin / et / wp-incluses /, mais évitez de bloquer accidentellement le / les téléchargements / répertoire; 2. Ajouter des chemins de sitemap tels que le plan du site: https://yourdomain.com/sitemap.xml pour aider les moteurs de recherche à découvrir rapidement des cartes de site; 3. Limite / Page / et URL avec des paramètres pour réduire les déchets du robot, mais veillez à ne pas bloquer les pages d'archives importantes; 4. évitez les erreurs courantes telles que le blocage accidentellement de l'ensemble du site, le plug-in de cache affectant les mises à jour et l'ignorer la correspondance des terminaux et des sous-domaines mobiles.

1. Utilisez le plug-in Performance Analysis pour localiser rapidement les problèmes. Par exemple, QueryMonitor peut afficher le nombre de requêtes de base de données et d'erreurs PHP, BlackBoxProfiler génère des rapports d'exécution de fonction et NewRelic fournit une analyse au niveau du serveur; 2. L'analyse des performances d'exécution de PHP nécessite la vérification des fonctions longues, l'utilisation des outils de débogage et l'allocation de mémoire, tels que XDebug génère des graphiques de flamme pour aider à l'optimisation; 3. 4. Combiner des outils externes tels que GooglePageSpeedInsights, Gtmetrix et WebPageTest pour évaluer le front-end Plus

WordPressRequireSAtleastPhp7.4, bien que 8.0orHigheReriSreComMendForBetterformanceAnDecurity.olderversionsLIVEL5

InspectorControls est un composant utilisé dans le développement de Gutenberg pour ajouter des commandes personnalisées dans la barre latérale droite. 1. Il appartient au package @ wordPress / Block-Editor. 2. Il est souvent utilisé avec Panelbody, TextControl et d'autres composants. 3. Lorsque vous l'utilisez, vous devez introduire et raisonnablement disposer des types de contr?le tels que des zones de texte, des sélections de traction, des commutateurs, des curseurs et des sélecteurs de couleurs dans edit.js. 4. Faites attention au regroupement des paramètres, gardez-les simple, soutenez l'internationalisation et optimisez les performances.
