Markdown sicher darstellen
- Matt
Markdown in HTML umwandeln geht mit Markdig in einer Zeile. Die zweite ist wichtiger:
var pipeline = new MarkdownPipelineBuilder()
.UseAdvancedExtensions()
.DisableHtml()
.Build();
var html = Markdown.ToHtml(eingabe, pipeline);
DisableHtml() sorgt dafür, dass roher HTML-Code im Markdown als Text behandelt wird statt als Auszeichnung. Ohne diese Zeile kann jeder, der Markdown eingeben darf, ein <script> unterbringen.
Wer HTML zulassen muss, kommt um eine Bereinigung mit einer Bibliothek wie HtmlSanitizer nicht herum. Selbst gebaute Filter mit regulären Ausdrücken sind an dieser Stelle zuverlässig unzureichend.