問題:我正在使用eval從我的WebMethods之一解析JSON返回值。
我不想添加jquery-json,因爲傳輸量已經很大。 所以我用eval解析JSON返回值。
現在有傳言說這是不安全的。爲什麼?
沒有人可以修改JSOn的返回值,除非他們破解我的服務器,在這種情況下,我會有一個更大的問題。
如果他們在本地執行此操作,那麼JavaScript只會在瀏覽器中執行。
所以我沒有看到問題出在哪裏。
有沒有人可以通過這個具體的例子揭示這一點?使用JavaScript eval解析JSON
function OnWebMethodSucceeded(JSONstrWebMethodReturnValue)
{
var result=eval('(' + JSONstrWebMethodReturnValue + ')')
... // Adding result.xy to a table
}
應該注意的是,Crockford的JSON包含兩個其他庫(除了主json.js和json2.js)以及不使用'eval'的不同解析模式。他們是'json_parse.js'和'json_parse_state.js',可以在這裏找到(https://github.com/douglascrockford/JSON-js/) – 2010-12-08 06:48:43
@Camilo:非常好,謝謝! – 2010-12-08 10:02:32
可以說,我沒有來自外部來源的輸入,我可以安全地使用eval嗎? – 2013-02-08 19:57:22