2010-02-11 11 views
1

Avant d'afficher les messages de l'utilisateur, je les exécute si Sanitize :: html() pour échapper tout html. Mais il échappe certains des caractères utilisés pour l'analyseur Markdown.Après avoir échappé aux caractères html avec Santiize :: html() de CakePHP, est-il sûr de décoder les caractères comme *() pour que l'analyseur de démarques fonctionne?

C'est ce que je veux: Je suis en train de tester cette démarque. Essayez clicking ici

Voici ce que je reçois: Je suis ' tester ce démarquage. Essayez [cliquez] ( http://www.google.com) Donc, je me demande s'il est acceptable de désactiver les caractères de démarquage ou est-ce que cela me laisse ouvert à un exploit XSS?

Répondre

1

Markdown est un peu plus complexe que d'échapper à certains caractères (il y a une raison pour laquelle il ya un parser pour cela). La solution dans ce cas serait d'exécuter l'entrée à travers l'analyseur Markdown d'abord (je ne suis pas sûr si vous utilisez un analyseur de démarques PHP, ou autre chose), puis à travers le désinfectant.

Bonne chance!