Maison > Tutoriel CMS > WordPresse > Codage de thèmes sûrs avec des fonctions WordPress intégrées

Codage de thèmes sûrs avec des fonctions WordPress intégrées

Jennifer Aniston
Libérer: 2025-02-10 11:53:09
original
165 Les gens l'ont consulté

Coding Safe Themes with Built-In WordPress Functions

Points de base

  • Les développeurs WordPress doivent traiter toutes les données comme peu sûrs jusqu'à ce qu'ils se soient prouvés;
  • L'injection SQL, les scripts croisés (XSS) et le contrefaçon de demande de site transversal (CSRF) sont des menaces courantes que les développeurs doivent prêter attention lors de l'écriture de thèmes WordPress.
  • La vérification, le nettoyage et l'échappement sont essentiels à la sécurité du thème WordPress. Vérifiez que les données d'entrée sont conformes aux attentes; nettoyer les filtres ou nettoyer les données avant de les stocker dans la base de données;
  • WordPress offre de nombreuses fonctions de validation, de nettoyage et d'échappement intégrées. Ces fonctions incluent is_email(), username_exists(), term_exists(), validate_file(), sanitize_email(), sanitize_option(), sanitize_text_field(), sanitize_hex_color(), wp_kses_post(), esc_html(), esc_url(), esc_attr() , esc_textarea(),
  • ,
,

, Coding Safe Themes with Built-In WordPress Functions ,

,

et .

Cet article fait partie d'une série d'articles créés en collaboration avec Siteground. Merci de soutenir les partenaires qui ont rendu le point de point possible.

Étant donné que WordPress représente 27% de la part du réseau, la sécurité est la principale préoccupation pour toute personne exécutant un site Web sur cette plate-forme open source populaire. Bien que la sécurité du code de base WordPress soit maintenue par une équipe de développement dédiée, ce n'est pas le cas avec des milliers de plug-ins tiers et de thèmes qui étendent les capacités de WordPress pour faire presque tout ce que vous voulez. Un seul plug-in ou thème avec une vulnérabilité peut présenter un risque élevé pour des millions de sites Web.

à moins que vous n'utilisiez un fournisseur d'hébergement fiable (comme notre partenaire Siteground), qui permet aux mises à jour automatiques des plugins WordPress et des vérifications de sécurité périodiques, la sécurité des thèmes et plugins de votre site Web dépend entièrement de vous, sauf si vous utilisez un hébergement fiable Proviseur (comme notre partenaire Siteground), qui permet des mises à jour automatiques aux plugins WordPress et aux vérifications de sécurité périodiques, la sécurité des thèmes et des plugins de votre site Web est entièrement à vous.

Dans cet article, je présenterai certaines directives et fonctions WordPress que vous pouvez appliquer dans le développement de thème WordPress pour vous assurer que votre produit met la sécurité des utilisateurs en premier lorsqu'il est écrit.

Principes pour les développeurs avec une forte conscience de la sécurité Pour les plugins WordPress dédiés et les développeurs de thème, la sécurité est un facteur qu'ils mettent en premier par écrit chaque ligne de code. L'approche globale de la rédaction d'un thème WordPress sûr comprend une concentration sur les principes généraux suivants:
  • Traitez toutes les données comme dangereuses jusqu'à ce qu'elles soient prouvées comme sécurisées.
  • Utilisez des fonctions WordPress dans la mesure du possible. La plupart des API WordPress ont des mécanismes de sécurité intégrés, ce qui signifie que les utiliser peut réduire considérablement le risque de vulnérabilités dans votre code.
  • Gardez votre code à jour avec les dernières technologies et meilleures pratiques.

choses à noter

Les menaces les plus courantes auxquelles vous devez prêter attention sont:

  • Injection SQL: un attaquant injecte un code SQL malveillant pour contrôler le serveur de base de données du site Web.
  • Scripting croisé (XSS): l'attaquant injecte du code JavaScript malveillant dans une page Web.
  • Fonctionnement des demandes inter-sites (CSRF): l'attaquant oblige l'utilisateur à effectuer des actions indésirables sur un site Web authentifié.

La cybersécurité s'est développée, il est donc crucial d'être conscient des dernières menaces. En ce qui concerne WordPress, les blogs Succuri sont un excellent endroit pour comprendre les vulnérabilités et les attaques.

Vérification des données, nettoyage et évasion

Avant d'accepter les données d'entrée de toute source (telles que les utilisateurs, les services réseau, les API, etc.), vous devez vérifier qu'il répond à vos attentes et est valide. Cette tâche est appelée Vérification .

Par exemple, si vous collectez des e-mails auprès d'un utilisateur via un formulaire sur un site Web, votre code doit vérifier si l'utilisateur a saisi une entrée de texte (par exemple, pas des nombres ou rien), et cette entrée correspond à une valide valide Une adresse e-mail, puis entrez les données dans la base de données.

Vous pouvez penser que ce type de chèque n'est presque pas nécessaire dans le sujet. En fait, il est préférable d'utiliser des plugins au lieu de thèmes pour inclure des formulaires. Cependant, ce n'est pas exactement le cas. Par exemple, si vous prévoyez d'ajouter des options de sujet via un personnalisateur, vous devrez peut-être effectuer une certaine validation de données sur l'entrée de l'utilisateur.

Nettoyage y compris le filtrage ou le nettoyage des données des utilisateurs, des services réseau, etc., qui seront bientôt stockés dans la base de données. Dans ce processus, vous pouvez supprimer n'importe quoi des données qui peuvent causer des dommages ou ne sont pas nécessaires, telles que des instructions JavaScript, des caractères spéciaux, etc.

Escape y compris assurer l'affichage sûr des données, tels que la suppression des caractères spéciaux, les caractères HTML codés, etc. L'approche recommandée ici est de s'échapper le plus tard possible, c'est-à-dire pour s'échapper avant que les données ne soient affichées à l'écran.

Vous devez faire beaucoup de nettoyage et échapper dans votre thème WordPress. En fait, pour des raisons de sécurité, la meilleure façon est de nettoyer / d'échapper à toutes les données dynamiques, c'est-à-dire toutes les données qui ne sont pas codées en dur dans le code source HTML.

Fonction de vérification WordPress

Vous pouvez effectuer une vérification de base en utilisant de nombreuses fonctions PHP pratiques.

Par exemple, pour vérifier si la variable n'existe pas ou si sa valeur est définie sur false , vous pouvez utiliser empty().

Mais pour faire de la vérification un jeu d'enfant, WordPress fournit ces fonctions utiles.

  • Vous pouvez utiliser la fonction is_email( $email ) pour vérifier si les données sont une adresse e-mail valide.

    Exemple:

     if ( is_email( 'test@domain.com' ) ) {
       echo '有效的电子邮件地址。';
     }
    Copier après la connexion
  • Pour vérifier un nom d'utilisateur valide, WordPress fournit username_exists( $username ):

     $username = 'testuser';
     if ( username_exists( $username ) ):
       echo "用户名已存在。";
     endif;
    Copier après la connexion
  • Pour vous assurer que des balises, des catégories ou d'autres termes taxonomiques existent, vous pouvez utiliser term_exists( $term, $taxonomy = '', $parent = null ):

     // 检查类别“cats”是否存在
     $term = term_exists('cats', 'category');
     if ($term !== 0 && $term !== null) {
       echo "“cats”类别存在。";
     }
    Copier après la connexion
  • Pour vous assurer que le chemin du fichier est valide (mais pas s'il existe), utilisez validate_file( $file, $allowed_files ):

     $path = 'uploads/2017/05/myfile.php';
     // 返回 0(有效路径)
     return validate_file( $path );
    Copier après la connexion

Fonction de nettoyage / d'échappement WordPress

L'utilisation de la fonction WordPress intégrée pour nettoyer et échapper aux données est le moyen le plus rapide et le plus sûr de le faire, alors faites-en votre premier choix.

Voici quelques fonctions que j'utilise souvent lors du développement de thèmes WordPress.

  • sanitize_email( $email ) Supprimer tous les caractères qui ne sont pas autorisés dans une adresse e-mail valide. Voici un exemple d'une entrée du codex:

     $sanitized_email = sanitize_email(' admin@example.com!  ');
     // 将输出:admin@example.com
     echo $sanitized_email;
    Copier après la connexion
  • sanitize_option( $option, $value ) Nettoyez les valeurs des options en fonction de la nature des options, telles que les valeurs des entrées de personnalisation. Voici un exemple:

     sanitize_option( 'admin_email', 'admin@test.com!' );
    Copier après la connexion
  • sanitize_text_field( $str ) Nettoyer les chaînes fournies par les utilisateurs ou les bases de données, mais vous pouvez l'utiliser pour nettoyer toutes les données que vous souhaitez être tout simplement texte:

     // 输出:标题
     echo sanitize_text_field('<h1>标题</h1>');
    Copier après la connexion
  • sanitize_hex_color( $color ) et sanitize_hex_color_no_hash( $color ) fonctionnent dans le contexte d'un personnalisateur WordPress.

    Vos thèmes sont très pratiques lorsqu'ils permettent aux utilisateurs de choisir des couleurs pour divers éléments du site Web.

    La première fonction vérifie la saisie de couleur hexadécimale préfixée avec le symbole #, tandis que la deuxième fonction gère les données de couleur sans #.

    Exemple de WordPress.org Référence du code:

     $wp_customize->add_setting( 'accent_color', array(
       'default' => '#f72525',
       'sanitize_callback' => 'sanitize_hex_color',
     ) );
    Copier après la connexion
  • wp_kses_post( $data ) Le contenu du filtre, ne laissant que les balises HTML. Dans un contexte de personnalisation, cela est très utile lorsque votre sujet permet aux utilisateurs de saisir du texte avec le format HTML:

     function yourtheme_sanitize_html( $input ) {
       return wp_kses_post( force_balance_tags( $input ) );
     }
    Copier après la connexion
  • esc_html( $text ) est un moyen simple d'échapper aux blocs HTML. Par exemple, si vous souhaitez sortir du texte dans une balise HTML pour vous assurer que ce texte lui-même ne contient pas de balises HTML ou d'autres caractères non valides, vous pouvez écrire:

     <h2><?php echo esc_html( $title ); ?></h2>
    Copier après la connexion
  • esc_url( $url ) est utile lorsque vous souhaitez vérifier et nettoyer les URL, y compris les URL dans les propriétés HREF et SRC. Par exemple:

     <a href="https://www.php.cn/link/9e52112668804599bae71e241e4b4548'https://website.com' ); ?>">很棒的网站</a>
    Copier après la connexion
  • esc_attr( $text ) n'importe où pour les attributs HTML de sortie dynamique pour votre thème:

     <a href="https://www.php.cn/link/1649f854581e9c03bc2c4e06023c5b99'/' ) ); ?>" rel="home"></a>
    Copier après la connexion
  • Vous pouvez utiliser esc_textarea( $text ) pour échapper au texte que l'utilisateur a tapé dans la zone de texte:

     <textarea><?php echo esc_textarea( $text ); ?></textarea>
    Copier après la connexion

Ressources

Les grandes ressources suivantes sont très utiles pour que je puisse vraiment arriver au point d'écriture du code de sécurité dans les thèmes WordPress:

  • Sécurité du thème dans WordPress.org Manuel du thème
  • Guide d'écriture en toute sécurité, Frank Klein
  • Nettoyer, échapper et valider les données dans WordPress, Narayan Prusty
  • WordPress Thème: Vulnérabilités XSS et pratiques de codage sécurisées, Tony Perez
  • Écriture de plugins sécurisés et de thèmes dans WordPress, Ben Lobaugh.

ou, vous pouvez apprendre comment les fournisseurs d'hébergement peuvent aider avec la sécurité WordPress dans cette comparaison pratique que nous avons organisée pour vous.

Si vous êtes intéressé par le développement du thème lui-même, vous pouvez apprendre à créer un thème de base à partir de zéro en apprenant dans le cours "Build Your First WordPress" de SitePoint: Chargement du lecteur ...

Conclusion

La sécurité doit être en tête de tous les développeurs WordPress. WordPress vous donne un bon début en offrant un grand nombre de fonctions prêtes à l'emploi que vous pouvez insérer dans votre thème.

Ainsi, l'utilisation de WordPress pour valider et nettoyer / échapper aux fonctions est la façon la plus simple que vous puissiez commencer à écrire un thème WordPress sûr et fiable (les utilisateurs apprendront à faire confiance).

Combien considérez-vous la sécurité lors de la rédaction d'un thème ou d'un plugin WordPress? Comment résolvez-vous les problèmes de sécurité?

Cliquez sur la zone de commentaire ci-dessous pour partager!

FAQ sur les fonctions de validation du thème et d'échappement WordPress

Quelles sont les normes de codage WordPress et pourquoi sont-elles importantes?

La norme de codage WordPress est un ensemble de règles et de directives spécifiques formulées par WordPress pour assurer la cohérence et la qualité du code WordPress. Ces normes sont importantes car elles rendent le code plus facile à lire, à comprendre et à maintenir. Ils aident également à prévenir les erreurs de codage courantes et les vulnérabilités de sécurité. Pour les développeurs, il est essentiel de suivre ces normes pour s'assurer que leurs thèmes et plugins sont compatibles avec WordPress et d'autres thèmes et plugins.

Comment modifier en toute sécurité le code WordPress?

L'édition du code WordPress peut être dangereuse si elle n'est pas effectuée correctement. Il est recommandé d'utiliser des sous-thèmes lors de la modification du code de thème. De cette façon, vous pouvez apporter des modifications sans affecter le thème d'origine. Assurez-vous également de sauvegarder votre site Web avant d'apporter des modifications. Utilisez l'éditeur de code approprié au lieu de l'éditeur WordPress pour modifier le code. Enfin, testez vos modifications sur le site de mise en scène avant de les appliquer sur votre site en direct.

Quelle est la différence entre le code et le sujet dans l'analyse qualitative?

Dans l'analyse qualitative, le code est utilisé pour étiqueter, compiler et organiser vos données, tandis que des sujets sont utilisés pour identifier les modèles et les relations dans les données. Le code est généralement un seul mot ou une phrase qui représente un élément de données spécifique. D'un autre côté, le sujet est plus large, représentant un concept ou une idée plus large qui émerge des données codées.

Qu'est-ce que le codage du thème et comment cela fonctionne-t-il dans WordPress?

Le codage du thème est une méthode utilisée dans la recherche qualitative pour identifier et analyser des modèles ou des sujets dans les données. Dans WordPress, le codage du thème peut se référer au processus de développement d'un thème avec une conception ou une fonction spécifique. Cela implique l'écriture et l'organisation du code d'une manière qui reflète la conception ou la fonction prévue du sujet.

Quelles sont les fonctions de validation et d'échappement dans WordPress?

Les fonctions de vérification et d'échappement sont des mesures de sécurité dans WordPress. La vérification est un processus de vérification des données saisies par l'utilisateur pour s'assurer qu'elle remplit certaines conditions avant le traitement. Escape est un processus pour garantir que la sortie est sécurisée en supprimant des données nocives qui peuvent provoquer des vulnérabilités de sécurité. Ces fonctions sont essentielles pour empêcher les problèmes de sécurité tels que l'injection de SQL et les scripts croisés (XSS).

Pourquoi est-il important de vérifier et d'échapper aux données dans WordPress?

Les données de vérification et d'échappement sont très importantes pour assurer la sécurité de votre site Web WordPress. Sans ces processus, votre site Web pourrait être attaqué et un attaquant pourrait injecter des données nocives sur votre site Web, entraînant une perte de données potentielle ou un accès non autorisé à votre site Web.

Comment vérifier et échapper aux données dans WordPress?

WordPress fournit quelques fonctions pour valider et échapper aux données. Par exemple, vous pouvez vérifier l'entrée de texte à l'aide de la fonction sanitize_text_field() et échapper à la sortie HTML à l'aide de la fonction esc_html(). Assurez-vous d'utiliser ces fonctions lors du traitement de l'entrée de l'utilisateur ou de la sortie des données au navigateur.

Quelles sont les meilleures pratiques pour écrire du code WordPress sécurisé?

Certaines meilleures pratiques pour écrire du code WordPress sécurisé incluent les normes de codage WordPress suivantes, la validation et l'échappement de toutes les données, en utilisant NONCE pour vérifier la source des demandes, la vérification des autorisations des utilisateurs avant d'effectuer une action et de garder WordPress, les thèmes et les plugins jusqu'à date.

Comment en savoir plus sur les normes de codage WordPress?

Le manuel du développeur WordPress est une excellente ressource pour apprendre les normes de codage WordPress. Il fournit des explications détaillées et des exemples des normes. Il existe également de nombreux tutoriels et cours en ligne qui couvrent les normes de codage WordPress.

Quelles sont les erreurs courantes que vous devez éviter lors de la codage de WordPress?

Certaines erreurs courantes qui doivent être évitées lors du codage WordPress incluent le fait de ne pas suivre les normes de codage WordPress, de ne pas vérifier ou d'échapper aux données, d'URL codées durs, de ne pas utiliser nonce pour les soumissions de formulaires, et de ne pas garder WordPress, thèmes et plugins à jour à jour .

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