Je veux filtrer ma sortie pour la rendre plus sûre à partir des attaques XSS (Cross Site Scripting), donc je filtre la sortie avec htmlentities. Le problème est, j'essaye de rendre mon application utf8 compatible ainsi quand j'entre quelque chose comme ಠ_ಠ je voudrais qu'il soit maintenu une fois extrait de la base de données. Existe-t-il une solution simple pour y parvenir? Merci d'avance pour tout conseil.empêcher les htmlentities de détruire les caractères utf8 ಠ_ಠ
Répondre
Trois choses
- HTML est une sortie sanitization échapper tâche, pas l'entrée filtrage. Vous devez pas effectuer cette tâche avant le stockage, vous ne devriez le faire avant d'afficher.
- Si vous essayez d'empêcher XSS, vous n'avez pas besoin d'utiliser
htmlentities()
-htmlspecialchars()
est suffisant.htmlentities()
est utilisé uniquement lors de la tentative de rendu d'un contenu à partir d'un codage de caractères différent du codage natif. - Bothfunctions accepter un codage de caractères comme troisième argument.
Alors, enfin:
echo htmlspecialchars($content, ENT_QUOTES, 'UTF-8');
Où si vous avez utilisé ENT_NOQUOTES vous pourriez être vulnérable à certains types de XSS.
$var=htmlspecialchars($var,ENT_QUOTES,"UTF-8");
et qui filtrera encore la sortie les mêmes entités d'attente le feraient? – Scarface
Regardez la documentation PHP pour savoir comment htmlspecialchars et htmlentities diffèrent. –
@Scarface Non, c'est beaucoup mieux d'arrêter XSS que htmlentties(). Il y a des cas où vous n'avez pas besoin de '<>', par exemple si vous êtes dans une balise body et que vous injectez un 'onload =', et cela empêchera cela. – rook
- 1. TCPDF UTF8 - l'espacement entre les caractères bizarres
- 2. Comment empêcher l'utilisateur de détruire un objet
- 3. Comparaison de caractères utf8 PostgreSQL
- 4. Comment afficher correctement les caractères UTF8 dans Android?
- 5. Comment décoder les caractères UTF8 avec JSON sur iPhone?
- 6. Sortie C# UTF8 garder les caractères encodés intacts
- 7. Smarty: les caractères spéciaux sont modifiés non désirés- utf8
- 8. entités charset-utf8 et caractères
- 9. Pourquoi xmltextreader convertit automatiquement les caractères utf8 encodés en html en chaîne utf8?
- 10. Détruire les contrôles
- 11. Impossible d'insérer des caractères utf8 sur mysql (avec collation utf8, jeu de caractères et jeu de caractères)
- 12. php - détruire toutes les sessions
- 13. Détruire complètement les objets Flash
- 14. Définir le jeu de caractères par défaut pour htmlentities()
- 15. lecture UTF8 caractères en utilisant innerHTML retourne 0xfffd pour tous les caractères
- 16. Django: Comment pouvez-vous empêcher les longues requêtes de détruire votre base de données?
- 17. Ruby Regular Expression pour faire correspondre les mots, y compris les accents et autres caractères UTF8
- 18. urls encodés utf8 dans les rails 2.3.4
- 19. mysql utf8 caractères turcs pas correct reconnu
- 20. PHP htmlentities
- 21. Fonction pour empêcher les caractères spéciaux dans le surnom
- 22. Comment changer toutes les tables de ma base de données en jeu de caractères UTF8?
- 23. Problème utf8 avec les caractères suédois de la ligne de commande
- 24. (Apache) Possible de faire correspondre les caractères UTF8 aux règles de réécriture?
- 25. Existe-t-il des octets de délimiteur pour les caractères UTF8?
- 26. Convertir utf8 en latin1 en PHP. Tous les caractères au-dessus de 255 convertissent en références de char
- 27. comment détruire correctement les objets/widgets gtk.Dialog
- 28. Utiliser preg_replace sans détruire les informations d'identification
- 29. acts_as_tree ne pas détruire les enfants
- 30. Rails: dependent =>: détruire les tests
merci beaucoup Peter, grande information – Scarface
This_ಠ ಠ_ಠ ಠ_ಠ ಠ_ಠ ಠ_ಠ – Scarface
-1 Ceci n'arrête pas tous les xss, les guillemets sont dangereux. – rook