Хранимый XSS
Что такое Хранимый XSS?
Хранимый XSSПостоянная межсайтовая скриптинг-уязвимость: вредоносный скрипт сохраняется на сервере и выполняется в браузере каждого посетителя.
Хранимый XSS (также называемый постоянным, Type-2) возникает, когда приложение принимает недоверенный ввод, сохраняет его в базе данных, файловой системе или журналах и впоследствии выводит в HTML без корректного выходного кодирования. Поскольку полезная нагрузка хранится на сервере, скрипт автоматически срабатывает у каждого пользователя, открывшего уязвимую страницу, что делает уязвимость одной из самых опасных. Типичные цели — поля комментариев, профили, отзывы и административные панели, отображающие записи журналов. Защита включает контекстно-зависимое кодирование вывода, строгую Content Security Policy, валидацию входных данных и санитизирующие библиотеки (например, DOMPurify).
● Примеры
- 01
Комментарий с <script>fetch('/api/me').then(...)</script>, выполняющийся у каждого читателя.
- 02
Атакующий сохраняет полезную нагрузку в имени профиля, и она срабатывает в админ-панели.
● Частые вопросы
Что такое Хранимый XSS?
Постоянная межсайтовая скриптинг-уязвимость: вредоносный скрипт сохраняется на сервере и выполняется в браузере каждого посетителя. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает Хранимый XSS?
Постоянная межсайтовая скриптинг-уязвимость: вредоносный скрипт сохраняется на сервере и выполняется в браузере каждого посетителя.
Как работает Хранимый XSS?
Хранимый XSS (также называемый постоянным, Type-2) возникает, когда приложение принимает недоверенный ввод, сохраняет его в базе данных, файловой системе или журналах и впоследствии выводит в HTML без корректного выходного кодирования. Поскольку полезная нагрузка хранится на сервере, скрипт автоматически срабатывает у каждого пользователя, открывшего уязвимую страницу, что делает уязвимость одной из самых опасных. Типичные цели — поля комментариев, профили, отзывы и административные панели, отображающие записи журналов. Защита включает контекстно-зависимое кодирование вывода, строгую Content Security Policy, валидацию входных данных и санитизирующие библиотеки (например, DOMPurify).
Как защититься от Хранимый XSS?
Защита от Хранимый XSS обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Хранимый XSS?
Распространённые альтернативные названия: Постоянный XSS, XSS типа 2.
● Связанные термины
- attacks№ 240
Межсайтовый скриптинг (XSS)
Веб-уязвимость, позволяющая злоумышленнику внедрять вредоносные скрипты на страницы, просматриваемые другими пользователями, и выполнять их в браузере жертвы под источником сайта.
- attacks№ 912
Отражённый XSS
Непостоянный XSS, при котором подконтрольный атакующему ввод сразу отражается в ответе и исполняется в браузере жертвы.
- attacks№ 347
DOM-XSS
Разновидность XSS, при которой внедрение и выполнение целиком происходят в браузере: клиентский JavaScript записывает недоверенные данные в опасный DOM-приёмник.
- appsec№ 214
Политика безопасности контента (CSP)
HTTP-заголовок ответа, указывающий браузеру, какие источники скриптов, стилей, фреймов и других ресурсов допустимы, что снижает последствия XSS и инъекций данных.
- appsec№ 773
Кодирование вывода
Преобразование недоверенных данных в безопасную для конкретного контекста вывода (HTML, JavaScript, URL, SQL, shell) форму, чтобы они не вырвались и не выполнились как код.
- appsec№ 538
Валидация ввода
Серверная проверка того, что каждый недоверенный ввод соответствует ожидаемому типу, длине, диапазону, формату и набору значений до его обработки приложением.
● См. также
- № 104Слепой XSS