Ответ 1
Использование недопустимого JSON в начале сообщения - один из способов победить комбинацию CSRF и хитрой атаки на конструктор массива JavaScript.
Если этот URL вернул верный, развернутый массив, то любой посещенный вами сайт мог бы перегрузить функцию "Массив", поместить/вставить ссылку скрипта на этот URL Google+ на страницу и собрать ваши личные/защищенные данные, когда вы просто загрузили их страницу,
Собственный клиентский код Google может удалить этот недействительный JSON перед его синтаксическим анализом, поскольку он использует традиционный запрос XHR, который дает им доступ к необработанному ответу. Удаленный сайт может получить к нему доступ только посредством внедрения элемента скрипта и не имеет возможности предварительно обработать данные, прежде чем их проанализирует браузер. Последнее похоже на то, как работает JSONP: конструктор Array невольно становится функцией обратного вызова.
Подобный подход вы увидите на многих высококлассных сайтах, которые возвращают массивы JSON в ответ на запросы GET. Facebook дополняет их с for (;;);
, например. Если вы попытаетесь использовать атаку CSRF на эти API-интерфейсы Facebook, браузер просто сделает бесконечный цикл на удаленном сайте, ссылаясь на частный API-интерфейс Facebook. На Facebook.com их клиентский код имеет возможность удалить его перед запуском JSON.parse().