Lire cet excellent article Validation et désinfection des données dans Wordpress Je l’ai remarqué dans mon blog, dans header.php, j’ai utilisé <?php echo $title ?>
dans une paire de codes.
Conformément à l'article ci-dessus , il est important de valider les données elles-mêmes, car les données sans validation sont vulnérables aux pirates.
Comme suggéré par l'auteur, j'ai changé mon <?php echo $title ?>
initial en <?php echo esc_html( $title ); ?>
.
Voici le code avant les changements :
<span class="ads">
<?php
if ( is_user_logged_in() ) {
echo '<span><a href="/?page_id=175" title="inserisci un annuncio gratis">Pubblica il tuo annuncio gratis: è facile e veloce!</a></span>';
} else {
echo '<span><a class="simplemodal-login simplemodal-submit" href=""><?php echo $title ?>Pubblica il tuo annuncio gratis: è facile e veloce!</a> </span>';
}
?>
</span>
Voici le code après les changements :
<span class="ads">
<?php
if ( is_user_logged_in() ) {
echo '<span><a href="/?page_id=175" title="inserisci un annuncio gratis">Pubblica il tuo annuncio gratis: è facile e veloce!</a></span>';
} else {
echo '<span><a class="simplemodal-login simplemodal-submit" href=""><?php echo esc_html( $title ); ?>Pubblica il tuo annuncio gratis: è facile e veloce!</a> </span>';
}
?>
</span>
Ma question est la suivante (j'imagine que c'est un débutant!): Le changement que j'ai apporté est-il bénéfique pour la sécurité de mon blog?
Dans le cas des articles, $title
est une valeur arbitraire, en tant que telle, elle devrait être échappée via HTML, mais si elle provient d’une fonction principale de WordPress, elle est probablement sûre, mais vous devriez quand même vérifier.
Par exemple, get_the_title()
peut contenir du balisage HTML et n'est pas échappé par défaut.
De toute façon, les titres de publication et de page ne doivent pas contenir de code HTML. Le style est pour les thèmes, pas pour le contenu.
Vous devez valider toutes les données au moment de la saisie et c’est là que vous devez concentrer vos efforts. Ce que vous faites améliore votre sécurité, mais de combien dépend de la provenance des données.
Je vous recommande d'échapper à toutes les données d'entrée et de sortie, mais faites-le par habitude plutôt que pour des cas exceptionnels spécifiques
Le titre de l'article peut contenir du balisage et il ne sera pas échappé par défaut de WordPress. Pour obtenir un titre échappé, utilisez:
the_title_rss()
(print get_the_title_rss()
) outhe_title_attribute()