Есть ли существует реализация.NET HtmlPurifier (php)

Есть ли всесторонний HTML библиотека cleaner/Anti-Xss для.NET, которая также имеет определенный белый список. Я знаю, что Microsofts Anti-Xss является хорошим местом для запуска, но ему нужны хороший белый список для позволенных тегов HTML и CSS. Кто-либо знает о чем-то?

7
задан Arron S 12 January 2010 в 18:09
поделиться

2 ответа

Что не так с библиотекой Microsoft Anti-XSS (о которой вы упомянули)?

У них есть комплексная очистка HTML, которая фильтрует символы на основе белого списка, анализирует HTML, фильтрует узлы на основе белого списка, а затем регенерируют (безопасный) HTML. Вы можете изменить белые списки (поскольку код открыт), но я не уверен, что вы захотите.

Использование также простое:

var sanitizedHtml = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(inputHtml);
10
ответ дан 6 December 2019 в 23:06
поделиться

Согласно MSDN (см. "Разрешение ограниченного ввода HTML") лучший способ обезопасить ввод HTML - это вызвать HttpUtility.HtmlEncode() на вашем входе и затем выборочно заменить кодировку на всех ваших тегах из белого списка, например:

<%@ Page Language="C#" ValidateRequest="false"%>    
<script runat="server">    
  void submitBtn_Click(object sender, EventArgs e)
  {
    // Encode the string input
    StringBuilder sb = new StringBuilder(
                            HttpUtility.HtmlEncode(htmlInputTxt.Text));
    // Selectively allow  and <i>
    sb.Replace("&lt;b&gt;", "<b>");
    sb.Replace("&lt;/b&gt;", "");
    sb.Replace("&lt;i&gt;", "<i>");
    sb.Replace("&lt;/i&gt;", "");
    Response.Write(sb.ToString());
  }
</script>

Смотрите также эту статью.

1
ответ дан 6 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: