微软反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
这是这个库的正常行为吗?是否有一种方法可以防止它对这个字符进行编码?
我不认为这是最好的解决方案。如果您使用HTML.Raw(),那么您将使自己容易受到XSS攻击,除非您可以绝对确定字符串在所有时间和所有使用HTML.Raw()的情况下都是安全的。
这是这个库的正常行为吗?
是的,它修复了你的HTML,因为你正在使用GetSafeHtmlFragment
。否则,您将以无效的HTML片段结束。在HTML中,&
字符有特殊的含义。我认为这种行为无法改变。