Question

Pour mon entité post-je stocker HTML et démarques dans la base de données (HTML est converti à partir démarques). HTML est pour le rendu de la page et démarques pour la capacité d'édition (avec ADM). Je Désinfectez HTML avant de le ranger à db. La question est: dois-je désinfectez démarquage aussi? ou il est XSS-safe si je passe seulement à WMD-rédacteur en chef?

Était-ce utile?

La solution

Markdown peut contenir du code HTML arbitraire; cela est explicitement autorisé. Donc, vous devriez désinfectez aussi, ou du moins aseptiser le résultat de la conversion au format HTML, avant d'envoyer aux clients Web.

Je me souviens que l'un des exploits possibles avec SO dans les premiers jours est que vous pouvez mettre le contenu JS dans le Markdown, et celui qui modifié votre article déclencherait ces scripts dans l'aperçu. Je ne sais pas si cela est encore fixé.

Autres conseils

Je vous ai remarqué que « Hygiénique HTML avant de stocker db » et parler de XSS-sécurité dans la phrase suivante. Ce sont deux facettes différentes de validation d'entrée, et vous ne devriez pas les mélanger, et répondre à la fois dans votre conception:

  • Vous devez insérer en toute sécurité toute entrée d'utilisateur dans la base de données, à savoir assurez-vous que l'entrée est correctement échappé (mysql_real_escape_string, les procédures stockées, les bibliothèques ORM, etc.)

  • Vous devez en toute sécurité à la sortie HTML / JS (y compris l'entrée d'armes de destruction massive), la suppression ou d'échapper à toutes les séquences qui peuvent être transformées en XSS exploits et autres désagréments.

Quant à la question, je suis d'accord avec Chris - puisque Markdown peut inclure du code HTML, il doit être désinfecté

.

Juste un ajout:
Cette question est venu d'utiliser des ADM

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top