Maison  >  Article  >  développement back-end  >  Comment générer en toute sécurité du HTML codé à partir de PHP : quelle est la meilleure façon d'échapper aux guillemets et aux crochets angulaires ?

Comment générer en toute sécurité du HTML codé à partir de PHP : quelle est la meilleure façon d'échapper aux guillemets et aux crochets angulaires ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 16:26:02455parcourir

How to Safely Output Encoded HTML from PHP: What's the Best Way to Escape Quotes and Angle Brackets?

Comment générer en toute sécurité du HTML codé à partir de PHP

Lors de la sortie de HTML à partir de PHP, il existe plusieurs pièges potentiels qui peuvent entraîner des vulnérabilités de sécurité ou problèmes de rendu.

Un problème courant est la nécessité d’échapper aux guillemets doubles et simples dans les attributs HTML. Par exemple, si la variable PHP $variable contient des guillemets doubles ("), elle doit être remplacée par " pour empêcher l'analyseur HTML d'interpréter le caractère guillemet comme la fin de l'attribut.

Cependant, si le $variable contient à la fois des guillemets doubles et des guillemets simples, cela devient plus compliqué car vous devrez remplacer les guillemets simples par ' mais laisser les guillemets doubles tels quels.

De plus, les variables peuvent inclure des crochets angulaires (< et > ;), ce qui peut interférer avec la structure HTML.

Solution

Pour échapper en toute sécurité à la sortie HTML, la fonction htmlspecialchars() peut être utilisée :

Il est conseillé de définir le deuxième paramètre, $quote_style, sur ENT_QUOTES.

Des problèmes potentiels surviennent si $variable est déjà codé. Dans ces cas, vous devrez peut-être définir le dernier paramètre, $double_encode, sur. faux.

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:
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