Bonjour J'utilise Visual Studio 2008 avec asp.net mvc 2. J'ai besoin d'une bibliothèque anti xss pour quantifier une entrée qui est générée par un éditeur de texte riche (RTE léger). Je souhaite utiliser AntiXss.GetSafeHtmlFragment (input); fonction.VS 2008 se bloque après l'ajout d'Anti-XSS
le problème est que VS 2008 se bloque après avoir fait référence à anti xss dll (ça marche bien dans la première fois mais ça plante).
Quelqu'un peut-il résoudre ce problème? Si ce n'est pas le cas quelqu'un peut me pointer vers un altrénatif fonctionnel (j'ai essayé d'utiliser le pack d'agilité html tout en permettant une liste blanche mais j'ai seulement réussi à autoriser des balises sans attributs).
le code pour le filtre d'agilité 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;
}
}
Merci!