안녕하세요 저는 asp.net mvc 2와 Visual Studio 2008을 사용하고 있습니다. 리치 텍스트 편집기 (경량 RTE)로 생성 된 입력을 santitize하려면 anti xss 라이브러리가 필요합니다. AntiXss.GetSafeHtmlFragment (입력)을 사용하고 싶습니다. 기능.Anti-XSS가 추가 된 후 VS 2008이 손상됨
문제는 VS 2008이 반 xss dll을 참조한 후 충돌이 발생한다는 것입니다 (처음에는 문제가 없지만 충돌보다 좋음).
아무도이 문제를 해결하는 방법이 있습니까? 누군가가 나를 작동하는 altrenative (필자는 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;
}
}
감사합니다!