Für meine Post-Entity speichere ich sowohl HTML als auch MARKDOWN in der Datenbank (HTML wird von MARKDOWN konvertiert). HTML dient zum Rendern auf der Seite und MARKDOWN zur Bearbeitung (mit WMD). Ich bereinigt HTML vor dem Speichern in db. Frage ist: Sollte ich Abzinsung auch sanieren? oder ist es xss-sicher, wenn ich es nur an wmd-editor übergebe?
Markdown kann beliebiges HTML enthalten; Dies ist ausdrücklich erlaubt. Sie sollten es also auch bereinigen oder zumindest das Ergebnis der Konvertierung in HTML bereinigen, bevor Sie es an Web-Clients senden.
Ich erinnere mich, dass eines der möglichen Exploits von SO in den frühen Tagen darin bestand, dass Sie JS-Inhalte in Markdown einfügen konnten und wer auch immer Ihren Artikel editierte, würde diese Skripte in der Vorschau auslösen. Ich weiß nicht, ob das schon behoben ist.
Ich habe bemerkt, dass Sie HTML vor dem Speichern in db "bereinigen" und im nächsten Satz von xss-safe sprechen. Das sind zwei verschiedene Facetten der Eingabevalidierung. Sie sollten sie nicht verwechseln und beide in Ihrem Design berücksichtigen:
Sie sollten alle Benutzereingaben sicher in die Datenbank einfügen, d. h. sicherstellen, dass die Eingabe ordnungsgemäß maskiert ist (mysql_real_escape_string, gespeicherte Prozeduren, ORM-Bibliotheken usw.)
Sie sollten sicher nach HTML / JS (einschließlich der Eingabe in WMD) ausgeben und alle Sequenzen entfernen oder entfernen, die in XSS-Exploits und andere Unannehmlichkeiten umgewandelt werden können.
Was die Frage betrifft, stimme ich Chris zu - da Markdown HTML enthalten kann, muss es bereinigt werden.
Nur eine Ergänzung:
Diese Frage kam von Verwenden von WMD
Tags und Links html markdown validation wmd