Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
06 Июл 2023
1 мин
46

Зачем Google добавляет while(1); в начало своих JSON-ответов?

Часто разработчики, работающие с API Google, наталкиваются на странное явление: в начало JSON-ответов добавлено выражение while(1);. На первый взгляд, это может

Часто разработчики, работающие с API Google, наталкиваются на странное явление: в начало JSON-ответов добавлено выражение while(1);. На первый взгляд, это может показаться необъяснимым, особенно для новичков в JavaScript.

while (1);
[
  ['u', [
    ['someData', 'value'],
    ['moreData', 'another value']
  ]]
]

Причина добавления while(1); связана с защитой данных и безопасностью веб-приложений. Это обусловлено особенностями JavaScript и способами обработки JSON.

В JavaScript существует функция eval(), которая позволяет исполнять строку кода. Это может представлять угрозу безопасности, если функция eval() используется для интерпретации недоверенных данных. Например, если eval() используется для обработки JSON-ответа от сервера, злоумышленник может внедрить вредоносный код в JSON, который будет выполнен на стороне пользователя.

let response = 'while (1); {"data": "value"}';
eval(response);

Если попробовать выполнить такой код, браузер зациклится на while(1); и никогда не дойдет до исполнения вредоносного кода. Это защищает пользователя от возможной угрозы.

Важно отметить, что эта мера защиты не является абсолютной. Злоумышленник может попытаться удалить while(1); из ответа перед его обработкой. Однако это требует дополнительных действий и времени, что усложняет процесс атаки.

Таким образом, добавление while(1); в начало JSON-ответов является дополнительной мерой защиты, которую используют в Google для повышения безопасности своих веб-приложений.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий