AntiXss.JavaScriptEncode 将结果用单引号括起来是否有充分的理由?
我一直在使用 Microsoft 的AntiXss 库 并想知道它的 JavaScriptEncode
方法是否有充分的理由将结果用单引号括起来? 这种行为似乎很不寻常。
I've been using Microsoft's AntiXss Library and was wondering if there is a good reason why its JavaScriptEncode
method wraps the result in single quotes? That behavior seems unconventional.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实际上新的3.0beta版本有一个标志JavaScriptEncode(string input, bool flagforQuote)。 将其设置为 false,会产生不带引号的结果。
http://www.microsoft.com/downloads/details.aspx microsoft.com/downloads/details.aspx?familyid=051EE83C-5CCF-48ED-8463-02F56A6BFC09&displaylang=en
Actually the new 3.0beta version has a flag JavaScriptEncode(string input, bool flagforQuote). Setting it to false, yields a result without quotes.
http://www.microsoft.com/downloads/details.aspx?familyid=051EE83C-5CCF-48ED-8463-02F56A6BFC09&displaylang=en
可能是为了确保它返回一个字符串。 我见过的用法是接受输入并返回一个值,您可以将该值分配给 javascript 中的变量。
var message=<%=AntiXss.JavaScriptEncode(message)%>;
现在,无论 message 中包含什么内容,js 变量 message 都会适当地转义确切的输入,因此,如果某个混蛋尝试将 javascript 注入该消息,他们只会看到将其消息分配给 message 变量的结果。
Probably to make sure it is returning a string. The usage I've seen is to take input and return a value that you can assign to a variable in javascript.
var message=<%=AntiXss.JavaScriptEncode(message)%>;
Now, no matter what was in message, the js variable message will have the exact input escaped appropriately so if some jerk tried to inject javascript into that message they'd just see the result of their message being assigned to the message variable.