我一直在使用Microsoft's AntiXss Library,并且想知道为什么它的JavaScriptEncode
方法将结果包装在单引号中有充分的理由?这种行为似乎是非常规的。
答案 0 :(得分:5)
实际上新的3.0beta版本有一个标志JavaScriptEncode(字符串输入,bool flagforQuote)。将其设置为false,产生没有引号的结果。
答案 1 :(得分:1)
可能确保它返回一个字符串。我看到的用法是获取输入并返回一个值,您可以在javascript中为变量赋值。
var message =<%= AntiXss.JavaScriptEncode(message)%>;
现在,无论消息中有什么内容,js变量消息都会正确地输入转义,所以如果有些混蛋尝试将javascript注入到该消息中,他们只会看到消息的结果被分配给消息变量