对于这个愚蠢的问题感到抱歉,但在here下面的引文中,作者声明最好使用JSON语言解析器,而不提供示例(因此,更多......)< / em>的。 我正在使用像json_encode / decode这样的PHP函数。但是我们是否需要在客户端解析json的其他函数?这对我来说似乎有点混乱,因为JSON似乎是在javascript中表示对象的常规方式。
清单12.使用正则表达式检查JSON字符串
var my_JSON_object =!(/ [^,:{} [] 0-9 .- + Eaeflnr -u \ n \ r \ t] / .test( text.replace(/“(。| [^”])*“/ g,'')))&amp;&amp; eval('('+ text +')');
但是,重要的是要注意这些regexp风格的JSON解析器 (例如,http://www.json.org/json.js)有微妙的安全问题,例如, 它们允许从调用JavaScript程序引用变量。 想象一下,JSON消息应包含密码 认证目的和程序有局部变量 包含“基准”密码。现在可能只是简单的消息 引用该变量,通过身份验证而不攻击者 必须知道密码!
因此,更安全的替代方案是使用JSON语言解析器 解析JSON数据。由于JSON的语法相当简单,你 可以轻松实现这样的解析器,而不会造成大的性能损失。
答案 0 :(得分:1)
这里的主要问题是javascript代码使用eval,这意味着它实际上会执行一些代码,这可能会引入某种漏洞
如果你不使用eval(php json_decode不使用eval)或任何其他不使用eval的解码器 - 你很好