不是eval()
假设我有#password输入,我将此数据作为JSON对象的一部分发送
var toSend = {
text: 'hello',
pass: $("#password").val()
};
我需要验证输入吗?
将", you: "are hacked"
解释为通信的另一方是单字符串还是空字符串和另一个属性?
编辑:在浏览器环境中什么都不会发生,但是如果JSON会通过互联网以纯文本形式发送并再次解析?
答案 0 :(得分:7)
如果你要做你正在描述的事情,那么什么都不会发生,因为json正在被转义(如果你正在使用解析器(JS对象 - > JSON))
在浏览器环境中什么都不会发生,但是如果JSON将通过互联网作为纯文本发送并再次解析?
如果要将字符串版本(JSON)解析为JS对象,则所有值都不会被删除,因此您必须在之后将其转义。