Yo, вероятно, следует использовать HTML-дезинфицирующее средство на основе белого списка, которое на самом деле понимает HTML-документы.Использование регулярных выражений, как правило, не считается безопасным подходом.
Причина, по которой Microsoft AntiXss не используется, заключается в том, что невозможно применять более подробные правила, например, что делать с тегами.Это приводит к тому, что теги полностью удаляются, когда, например, имеет смысл сохранить текстовое содержимое.Кроме того, кажется, что он больше не поддерживается.
HtmlRuleSanitizer позволяет вам определить стратегию очистки, чтобы точно соответствовать ожидаемому HTML, сгенерированному вашим редактором, следующим образом:
var sanitizer = new HtmlSanitizer();
sanitizer.Tag("strong").RemoveEmpty();
sanitizer.Tag("b").Rename("strong").RemoveEmpty();
sanitizer.Tag("i").RemoveEmpty();
sanitizer.Tag("a").SetAttribute("target", "_blank")
.SetAttribute("rel", "nofollow")
.CheckAttribute("href", HtmlSanitizerCheckType.Url)
.RemoveEmpty();
string cleanHtml = sanitizer.Sanitize(dirtyHtml);
Использование заранее определенной стратегии санитарии.