Dans mon site, tout tag html d'une entrée d'utilisateur est échappé par htmlspecialchars
, puis j'envoie des balises html + contenu d'utilisateur échappé comme une variable JSON en utilisant PHP json_encode
, cela échappe à tous "as \", seulement ceux que j'ai mis le HTML parce que l'entrée de l'utilisateur est déjà échappée.Est-il nécessaire d'encoder du HTML dans JSON à HEX?
Cela fonctionne très bien, je n'ai eu aucun problème, je ne vois pas comment une attaque XSS serait possible, et j'ai essayé.
Mais je vois que Twitter et encode facebook pour HEX toutes les balises HTML, donc si je ferais la même chose je voudrais ajouter les options JSON_HEX_TAG JSON_HEX_AMP JSON_HEX_APOS JSON_HEX_QUOT
-json_encode()
.
Alors pourquoi Twitter et Facebook font-ils cela et pourquoi? Je ne pouvais pas créer une erreur de sécurité.
'sur un ancien navigateur' ... erm, Edge est ** pas ** un navigateur onlder –
@Jaromanda Ce que je veux dire, c'est qu'il fonctionne bien dans tous les navigateurs que j'ai testé IE9 + Edge Firefox Chrome Opera. Je dis juste par curiosité, que si vous regardez le fichier JSON, si vous entrez dans les outils de développement et que vous effectuez une recherche sur l'onglet Réseau, le navigateur ne coloriera pas bien les variables qui ont "échappé comme \". Il fonctionne parfaitement sur Edge, donc je dis seulement comme une hypothèse, que peut-être le moteur de coloration n'est pas mis à jour et il fonctionne comme et vieux navigateur lirait le fichier JSON, juste deviner. – Vixxs
donc, votre question ne concerne pas un problème avec le code, il s'agit de la console d'outils de développement pretty print? –