Подтвердить что ты не робот

HTML Sanitizer для .NET

Я начинаю проект, который будет публичным, используя asp.net mvc. Я знаю, что там есть около миллиарда php, python и ruby ​​html sanitizers, но есть ли у кого-нибудь какие-либо указания на что-нибудь хорошее в .net? Каков ваш опыт в том, что там? Я знаю, что stackoverflow - это сайт, созданный в asp.net, который позволяет произвольную HTML-форму, что она использует?

4b9b3361

Ответ 2

HtmlSanitizer

Источник: https://github.com/mganss/HtmlSanitizer

Достаточно надежный дезинфицирующее средство. Он понимает и может очищать встроенные стили, но не имеет анализатора, который может иметь дело с <style> блоков, поэтому он их разделяет. Это, безусловно, до и, возможно, выше уровня, на котором находился Microsoft AntiXSS, прежде чем он был оставлен.

Ответ 3

существует версия С# здесь

Ответ 4

Вот один из построил microsoft. http://wpl.codeplex.com/

var cleanHtml = Sanitizer.GetSafeHtml(unsafeHtml);

Ответ 5

HtmlRuleSanitizer

По вашему вопросу у меня есть следующие предложения:

  • Вы хотите разрешить бесплатный HTML-форму, поэтому вам нужно решение, чтобы иметь возможность указывать набор тегов, атрибутов и/или классов CSS, которые разрешены.
  • Предоставляя бесплатную форму HTML, вполне вероятно, что вам также придется иметь дело с неправильным HTML, потому что пользователи делают ошибки (преднамеренные или нет). Таким образом, вам необходимо решение, основанное на толерантном парсере, например Html Agility Pack.
  • Вы хотите использовать белый листинг, потому что черный дезинфицирующий агент не защищает вас от каких-либо новых спецификаций HTML. Кроме того, очень сложно гарантировать, что черный список охватывает все случаи в первую очередь из-за размера спецификации HTML.

Я столкнулся с той же проблемой и создал HtmlRuleSanitizer, который является белым списком правил, основанным на HTML-дезинфицирующем устройстве поверх Html Agility Pack.