VS 2008 падает после добавления Anti-XSS
Здравствуйте, я использую Visual Studio 2008 с asp.net mvc 2. Мне нужна библиотека анти-XSS, чтобы санитизировать входные данные, которые генерируются с помощью текстового редактора (облегченный RTE). Я хочу использовать AntiXss.GetSafeHtmlFragment(input); функция.
проблема в том, что VS 2008 падает после того, как я ссылаюсь на анти-xss dll (в первый раз он работает нормально, но потом падает).
Кто-нибудь, как решить эту проблему? Если нет, то кто-нибудь может указать мне на работающую альтернативу (я попытался использовать пакет гибкости html, разрешив белый список, но мне удалось разрешить только теги без атрибутов).
код для html-фильтра ловкости -
public static string Filter(string html, string[] allowedTags)
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
StringBuilder buffer = new StringBuilder();
Process(doc.DocumentNode, buffer, allowedTags);
return buffer.ToString();
}
static string[] RemoveChildrenOfTags = new string[] { "script", "style" };
static void Process(HtmlNode node, StringBuilder buffer, string[] allowedTags)
{
switch (node.NodeType)
{
case HtmlNodeType.Text:
buffer.Append(HttpUtility.HtmlEncode(((HtmlTextNode)node).Text));
break;
case HtmlNodeType.Element:
case HtmlNodeType.Document:
bool allowedTag = allowedTags.Contains(node.Name.ToLower());
if (allowedTag)
buffer.AppendFormat("<{0}>", node.Name);
if (!RemoveChildrenOfTags.Contains(node.Name))
foreach (HtmlNode childNode in node.ChildNodes)
Process(childNode, buffer, allowedTags);
if (allowedTag)
buffer.AppendFormat("</{0}>", node.Name);
break;
}
}
Спасибо!
1 ответ
Я обнаружил, почему VS 2008 дает сбой при обращении к AntiXss- это связано с надстройкой команд питания для VS 2008. Удалил его, и это нормально.