Хранимый XSS
Вредоносный скрипт сохраняется на сервере и исполняется у каждого, кто открывает заражённую страницу.
Сигнатура
Stored XSSХранимый XSS опаснее отражённого: скрипт сохраняется в базе (например в комментарии) и затем отдаётся всем посетителям страницы. Один внедрённый скрипт может атаковать множество пользователей.
Как защититься: экранируйте данные при выводе, а не только при вводе; для HTML-контента используйте санитайзер с белым списком тегов (например DOMPurify, bleach); включите CSP.
import bleach
# Опасно: комментарий выводится как есть
comment = load_comment() # содержит <script>...</script>
return "<div>" + comment + "</div>"
# Безопасно: очистка по белому списку тегов
clean = bleach.clean(load_comment(), tags=["b", "i", "p"])
return "<div>" + clean + "</div>"