вторник, 5 февраля 2013 г.

Stand Up N1 - особенности Google с JSON

    В DrupalJedi у нас каждый вечер проводятся вечерние стендапы, где разработчики делятся знаниями, которые получили в течение рабочего дня. Теперь мы будем публиковать самое интересное из наших стендапов в блог ДрупалСиба с меткой "standup".  

    JSON - текстовый формат, который может исспользоваться в любом языке программирования для обмена данными. 

    Google также использует JSON для передачи данных между своими сервисами. Такой JSON зачастую передает конфиденциальные данные, которые злоумышленники могут захотеть украсть, использовав JSON у себя на сайте. Получить его можно подключить к сайту как js файл. Поэтому, для безопасности, google добавляет в начало своего JSON файла строки “while(1);” или &&&START&&&. 

    Пример: while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],['remindOnRespondedEventsOnly','true'],['hideInvitations_remindOnRespondedEventsOnly','false_true'],['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]

    Как только такой код попадет в теги <script> в html документе, он исполнится как js и в результате это приведет к бесконечному циклу или синтаксической ошибке. Почему же этот хак не мешает работе самих сервисов google? Потому что они работают с JSONом через AJAX запросы, выполнение же AJAX запросов на разные домены запрещены.

Комментариев нет:

Отправить комментарий