AntiXss.JavaScriptEncode包装导致单引号的原因是否正确?

时间:2009-05-15 14:37:01

标签: asp.net xss antixsslibrary

我一直在使用Microsoft's AntiXss Library,并且想知道为什么它的JavaScriptEncode方法将结果包装在单引号中有充分的理由?这种行为似乎是非常规的。

2 个答案:

答案 0 :(得分:5)

实际上新的3.0beta版本有一个标志JavaScriptEncode(字符串输入,bool flagforQuote)。将其设置为false,产生没有引号的结果。

http://www.microsoft.com/downloads/details.aspx?familyid=051EE83C-5CCF-48ED-8463-02F56A6BFC09&displaylang=en

答案 1 :(得分:1)

可能确保它返回一个字符串。我看到的用法是获取输入并返回一个值,您可以在javascript中为变量赋值。

var message =<%= AntiXss.JavaScriptEncode(message)%>;

现在,无论消息中有什么内容,js变量消息都会正确地输入转义,所以如果有些混蛋尝试将javascript注入到该消息中,他们只会看到消息的结果被分配给消息变量