问题:我正在使用eval解析WebMethods返回的JSON值。
我不想添加jquery-json,因为传输量已经很大了。 所以我用eval解析JSON返回值。
现在有谣言说这是不安全的。为什么?
除非他们黑掉我的服务器,否则没有人可以修改JSOn返回值,在这种情况下,我将面临更大的问题。
如果他们在本地执行此操作,JavaScript只会在他们的浏览器中执行。
因此,我无法看到问题所在。
是否有人能够使用这个具体例子来阐明一下?
我不想添加jquery-json,因为传输量已经很大了。 所以我用eval解析JSON返回值。
现在有谣言说这是不安全的。为什么?
除非他们黑掉我的服务器,否则没有人可以修改JSOn返回值,在这种情况下,我将面临更大的问题。
如果他们在本地执行此操作,JavaScript只会在他们的浏览器中执行。
因此,我无法看到问题所在。
是否有人能够使用这个具体例子来阐明一下?
function OnWebMethodSucceeded(JSONstrWebMethodReturnValue)
{
var result=eval('(' + JSONstrWebMethodReturnValue + ')')
... // Adding result.xy to a table
}
eval
。它们分别是json_parse.js
和json_parse_state.js
,可以在 这里 找到。 - Camilo Martineval
的字符串,并且该字符串将是JSON(或类似JSON),则您至少避免了eval
的两个主要“罪恶”(它运行代码并且可能对调用它的范围产生奇怪的影响)。您仍然会启动完整的JavaScript解析器,但就我而言,我并不认为这有什么问题。 - T.J. Crowder