Microsoft Anti XSS Library编码&符号?

时间:2011-10-11 17:02:52

标签: c# asp.net-mvc antixsslibrary

我目前正在使用 Microsoft AntiXSS库并使用GetSafeHtmlFragment方法,如下所示:

public static string SanitizeHtml(this string s)
{
    return Sanitizer.GetSafeHtmlFragment(s);
}

但是,如果我传入这样的字符串:

  

black & white

...它正在对符号进行编码,因此它变为:

  

black & white

这个库的正常行为是什么?有没有办法阻止它编码这个角色?

2 个答案:

答案 0 :(得分:1)

我不认为这是最好的解决方案。如果您使用HTML.Raw(),那么您将使自己容易受到XSS攻击,除非您可以绝对确定该字符串始终是安全的并且适用于HTML.Raw()的所有用途。

答案 1 :(得分:0)

  

这个库的正常行为是什么?

是的,它会修复您的HTML,因为您使用的是GetSafeHtmlFragment。否则你最终会得到无效的HTML片段。在HTML中,&字符具有特殊含义。我不认为这种行为可以修改。