В последний раз, когда я просматривал (в конце 2008 года), функции JQuery get () getJSON () и т. Д. Внутренне оценивали строку JSon и поэтому подвержены той же проблеме безопасности, что и eval.
Следовательно, перед использованием eval () в любой форме очень полезно использовать функцию синтаксического анализа, которая проверяет строку JSON, чтобы убедиться, что она не содержит хитрый не-JSON-код JavaScript, перед использованием eval ().
Вы можете найти такую функцию в https://github.com/douglascrockford/JSON-js/blob/master/json2.js.
См. JSON и Broswer Security для хорошего обсуждения этой области.
В итоге, использование JSON-функций JQuery без анализа входного JSON (с использованием вышеуказанной связанной функции или аналогичного) не является безопасным на 100%.
NB. Если этот вид синтаксического анализа все еще отсутствует в getJSON (возможно, недавно был добавлен), еще важнее понять этот риск из-за возможности междоменной работы из справочных документов JQuery:
Начиная с jQuery 1.2, вы можете загрузить JSON
данные, расположенные в другом домене, если вы
указать обратный вызов JSONP, который может быть
сделано так: "myurl? callback =?".
JQuery автоматически заменяет?
с правильным именем метода для вызова,
вызов указанного вами обратного вызова.