Какова цель бесконечного пустого цикла в ответах на запросы JSONP?

Какова цель добавления "for (;;);" к ответу на запросы JSONP? Например. такой ответ:

for (;;); {a: ...} (где {a: ...} - строка JSON)

В чем разница между передачей только {a: ...} (если есть).


person Eugene Retunsky    schedule 08.08.2012    source источник
comment
Он блокирует людей, которые забирают данные jsonp, с помощью плохих / бессмысленных обработчиков.   -  person Marc B    schedule 08.08.2012


Ответы (1)


Вы найдете ответ здесь, на SO.

Я резюмирую это: бесконечный цикл ограничивает доступ к данным JSON в ваш собственный домен. Вы можете загрузить скрипт на свой сайт через XMLHttpRequest и удалить цикл перед использованием / выполнением данных / скрипта. Цикл предотвращает междоменные запросы, поскольку они должны использовать узел <script>, и, таким образом, цикл будет выполнен.

Обратите внимание, что это не работает, если кто-то загружает данные / сценарий JSON на сервер, который может удалить цикл, а затем отправить данные клиенту.

person Aletheios    schedule 08.08.2012