Я заметил пустой блок комментариев в выводе JSONP, возвращенный api-графиком facebook для всех методов.
URL, который я назвал:
https://graph.facebook.com/NUMERIC_FACEBOOK_ID/friends?access_token=ACCESS_TOKEN_STRING&callback=theGreatFunction
Вывод JSONP:
/**/ theGreatFunction({ "data": [ { "name": "First Friend", "id": "XXXX" }, { "name": "Second Friend", "id": "XXXXXX" }, ........
Мой вопрос: что означает пустой блок комментария /* */ перед функцией обратного вызова?Есть ли у него особая цель?Исправляет ли это какой-либо известный javascript gotcha?
/* */
Мы добавили это для защиты от атаки, когда сторонний сайт обходит тип ответа, выполнив:
<object type="application/x-shockwave-flash" data="http://graph.facebook.com?callback=[specifically crafted flash bytes]"> </object>
Google делает нечто подобное, за исключением того, что они используют // ... + \ n (например, http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full?alt=json&callback=foo)
Может быть какой-то разделитель для фиксированного запуска.Я думаю, у Фейсбука была причина, но она есть, но мы можем только догадываться, и это не имеет значения, не так ли?:)