Maison > Tutoriel CMS > WordPresse > Désinfecter, échapper et valider les données dans WordPress

Désinfecter, échapper et valider les données dans WordPress

William Shakespeare
Libérer: 2025-02-17 08:34:11
original
482 Les gens l'ont consulté

Sécurité des données WordPress: purification, évasion et vérification

Lors de la création de plugins et de thèmes WordPress pour des milliers de sites Web, assurez-vous de gérer attentivement les données et quittant WordPress. Ce tutoriel explorera les fonctions natives pour protéger, nettoyer et vérifier les données WordPress, ce qui est crucial pour créer des pages de paramètres, des formulaires HTML, manipuler les shortcodes, etc.

"Sanitizing,

Qu'est-ce que la purification des données?

En bref, la purification des données consiste à nettoyer les entrées utilisateur. Il supprime le texte, les caractères ou le code qui ne sont pas autorisés dans l'entrée.

Exemple: Gmail supprime les balises et le contenu des messages HTML avant de les afficher pour empêcher CSS de remplacer les styles Gmail. Les titres de widget WordPress n'autorisent pas les balises HTML et, le cas échéant, seront automatiquement supprimées avant d'enregistrer le titre.

WordPress fournit plusieurs fonctions pour purifier différents types de données:

  • sanitize_email(): Supprime les caractères qui ne sont pas autorisés dans l'adresse e-mail. Par exemple: sanitize_email("narayan prusty@sitepoint.com") sortie "narayanprusty@sitepoint.com".
  • sanitize_file_name(): Supprime les caractères du nom du fichier qui peuvent causer des problèmes avec le fichier de référence de la ligne de commande. WordPress Media Uploader utilise cette fonction pour purifier les noms de fichiers multimédias. Par exemple: sanitize_file_name("_profile pic--1_.png") sortie "profile-pic-1_.png".
  • sanitize_key(): Les options, les métadonnées et les touches transitoires ne peuvent contenir que des caractères alphanumériques en minuscules, des tirets et des soulignements. Cette fonction est utilisée pour purifier les clés. Par exemple: sanitize_key("http://SitePoint.com") sortie "httpsitepointcom".
  • sanitize_text_field(): supprime les caractères UTF-8 non valides, convertit les caractères spécifiques à HTML en entités, supprime toutes les balises et supprime les pauses, les onglets et les espaces supplémentaires. WordPress utilise cette fonction pour purifier les titres de widgets. Par exemple: sanitize_text_field("<b>Bold</b>") sortie "Bold".
  • sanitize_title(): supprime les balises PHP et HTML, ainsi que des accents des chaînes. Convertissez les caractères d'espace en Dash. Cette fonction est utilisée pour générer des limaces d'articles / pages en fonction du titre de l'article / de la page, plutôt que de purifier le titre (la purification du titre nécessite sanitize_text_field). Par exemple: sanitize_title("Sanítizing, Escaping and Validating Data in WordPress") sortie "sanitizing-escaping-and-validating-data-in-wordpress".

Qu'est-ce que les données s'échapper?

En bref, l'évasion des données consiste à protéger la sortie. Ceci est fait pour empêcher les attaques XSS et s'assurer que les données sont affichées comme prévu.

Dona Escape convertit les caractères HTML spéciaux en entités HTML pour l'affichage plutôt que l'exécution.

Exemple: Facebook échappe aux messages de chat lorsqu'ils s'affichent pour s'assurer que les utilisateurs n'exécutent pas de code sur les ordinateurs de l'autre.

WordPress fournit quelques fonctions pour échapper à différents types de données:

  • esc_html(): Échappez des caractères spécifiques HTML.
  • esc_textarea(): Lorsque vous affichez du texte dans la zone de texte, utilisez esc_textarea() au lieu de esc_html() car esc_textarea() peut double encoder les entités.
  • esc_attr(): Encoder ,, &, " et ' caractères. Il n'encode jamais les entités. Cette fonction est utilisée pour échapper à la valeur des attributs de balise HTML.
  • esc_url(): L'URL peut également contenir du code JavaScript. Par conséquent, si vous souhaitez afficher une URL ou une balise complète <a></a>, l'attribut href doit être échappé, sinon cela peut entraîner une attaque XSS.
  • esc_url_raw(): Utilisez cette fonction si vous souhaitez stocker l'URL dans une base de données ou pour la redirection de l'URL. La différence entre esc_url et esc_url_raw est que esc_url_raw ne remplace pas les citations versus et simples.
  • antispambot(): Cette fonction convertit les caractères d'adresse e-mail en entités HTML pour bloquer les bots de spam.

Qu'est-ce que la vérification des données?

En bref, la vérification des données consiste à vérifier les entrées utilisateur. Il s'agit de vérifier si l'utilisateur a saisi une valeur valide.

Si les données sont non valides, elles ne seront pas traitées ou stockées. Le système demandera à l'utilisateur de réintégrer la valeur.

Exemple: Lorsque vous créez un compte sur un site Web, il vous sera demandé de saisir deux fois votre mot de passe. Le système vérifiera que les deux mots de passe sont les mêmes.

La vérification HTML5 ne doit pas être invoquée, car elle est facilement contournée. La vérification côté serveur est requise avant que les données spécifiques ne soient traitées ou stockées.

WordPress fournit certaines fonctions pour vérifier certains types de données. Les développeurs définissent généralement leurs propres fonctions pour la validation des données.

  • is_email(): Vérifiez si la chaîne donnée est une adresse e-mail.
  • is_serialized(): Vérifiez si les données passées sont une chaîne.

Conclusion

Nous comprenons les concepts de purification, de vérification et d'échappement des données et leur importance. Assurez-vous d'inclure ces fonctions lors du développement de thèmes ou plugins WordPress. De nombreux plugins ne sont pas bien développés et n'ont pas de sortie échappée, ce qui rend le site Web vulnérable aux attaques XSS potentielles.

FAQ (FAQ)

Cette section contient des questions fréquemment posées sur la purification des données, l'échappement et la validation dans WordPress, couvrant son importance, comment travailler, les meilleures pratiques et comment utiliser les fonctions WordPress pour mettre en œuvre ces mesures de sécurité.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal