Получает данные JSON с безопасным jQuery?

В файле .csproj были ссылки, которые пытались получить доступ к старому пути к файлу, и эта версия пакета не существовала по этому пути. Поэтому я выбрал неверный путь, и он исправил проблему

7
задан Gary Richardson 18 February 2009 в 02:17
поделиться

4 ответа

В прошлый раз я смотрел (в конце 2008), функции JQuery добираются () getJSON () и т.д. внутренне оценка строка JSon и так выставляются той же проблеме безопасности как оценка.

Поэтому это - очень хорошая идея использовать функцию парсинга, которая проверяет строку JSON, чтобы гарантировать, что это не содержит изворотливого non-JSON кода JavaScript, перед использованием оценки () ни в какой форме.

Можно найти такую функцию в https://github.com/douglascrockford/JSON-js/blob/master/json2.js.

См. JSON и безопасность Broswer для хорошего обсуждения этой области.

Таким образом, с помощью функций JSON JQuery, не анализируя вход JSON (использующий вышеупомянутую связанную функцию или подобный) не является 100%-м сейфом.

NB: Если этот вид парсинга все еще отсутствует в getJSON (возможно, был недавно добавлен) еще более важно понять этот риск из-за перекрестной доменной возможности из справочных документов JQuery:

С jQuery 1.2 можно загрузить данные JSON, расположенные на другом домене при определении обратного вызова JSONP который может быть сделан как так: "myurl? обратный вызов =?". jQuery автоматически заменяет? с корректным именем метода для вызова, называя указанный обратный вызов.

7
ответ дан 7 December 2019 в 01:27
поделиться

Все браузеры, о которых я знаю, отключают запросы перекрестного сайта через Ajax. Таким образом, если Ваша страница находится на my.example.com, Вы ничего не можете загрузить с помощью Ajax, если его URL не также по my.example.com.

Это на самом деле может быть чем-то вроде неприятности, и существуют способы для взломщика ввести источник другими способами, но якобы это ограничение существует для обращения точно к беспокойству, которое Вы упоминаете.

0
ответ дан 7 December 2019 в 01:27
поделиться

И IE 8 и Firefox 3.1 будут иметь собственную поддержку JSON, которая обеспечит безопасную альтернативу оценке (). Я ожидал бы, что другие браузеры будут следовать примеру. Я также ожидал бы, что jQuery изменит свою реализацию для использования этих собственных методов.

1
ответ дан 7 December 2019 в 01:27
поделиться

$.getJSON() используется для выполнения (вместо использования eval) код JavaScript из удаленных источников (использующий идиому JSONP, если обратный вызов указан). При использовании этого метода полностью ваше дело доверять источнику, потому что они будут иметь контроль ко всей странице (они могут даже отправлять cookie вокруг).

От сайта Douglas Crockford о Взломе Тега script (jsonp):

Таким образом, сценарий может получить доступ и использовать свои cookie. Это может получить доступ к инициирующему серверу с помощью авторизации пользователя. Это может осмотреть DOM и глобальный объект JavaScript, и отправить любую информацию, которую это находит где угодно в мире. Взлом Тега script не безопасен и должен избежаться.

2
ответ дан 7 December 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: