JSON语言解析器;这是什么意思

时间:2015-04-17 17:31:17

标签: php json

对于这个愚蠢的问题感到抱歉,但在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的语法相当简单,你   可以轻松实现这样的解析器,而不会造成大的性能损失。

1 个答案:

答案 0 :(得分:1)

这里的主要问题是javascript代码使用eval,这意味着它实际上会执行一些代码,这可能会引入某种漏洞

如果你不使用eval(php json_decode不使用eval)或任何其他不使用eval的解码器 - 你很好