0

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

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

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

black & white

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

black & white

这是这个库的正常行为吗?有没有办法阻止它编码这个字符?

4

2 回答 2

1

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

于 2017-03-23T22:33:33.983 回答
0

这是这个库的正常行为吗?

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

于 2011-10-11T17:05:52.427 回答