微软反XSS库编码&符号

本文关键字:符号 编码 XSS 微软 | 更新日期: 2023-09-27 18:11:11

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

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

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

black & white

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

black & white

这是这个库的正常行为吗?是否有一种方法可以防止它对这个字符进行编码?

微软反XSS库编码&符号

我不认为这是最好的解决方案。如果您使用HTML.Raw(),那么您将使自己容易受到XSS攻击,除非您可以绝对确定字符串在所有时间和所有使用HTML.Raw()的情况下都是安全的。

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

是的,它修复了你的HTML,因为你正在使用GetSafeHtmlFragment。否则,您将以无效的HTML片段结束。在HTML中,&字符有特殊的含义。我认为这种行为无法改变。