🔥 Вопрос с собеседования
Почему даже при использовании экранирования (escaping) XSS всё равно возникает?
👇 Правильный ответ (нажми, чтобы прочитать):
Потому что XSS — это не одна уязвимость, а набор контекстов, и экранирование работает только если вы попали точно в нужный.
🔴 Где ломается:
— Разные контексты
HTML, атрибут, JS, URL — для каждого нужен свой способ экранирования
Один универсальный “escape” не работает
— Смена контекста
Данные могут попасть сначала в HTML, потом внутрь <script> или атрибута
→ защита перестаёт соответствовать месту исполнения
— DOM XSS
Данные обрабатываются уже в браузере (innerHTML, eval, setTimeout)
→ серверная санитизация не помогает
— Декодирование
Данные могут декодироваться несколько раз
→ то, что было «безопасным», снова становится опасным
— Фильтры вместо строгих правил
Чёрные списки обходятся
→ браузер всё равно найдёт способ выполнить код
— Интеграции и библиотеки
сторонний код может вставлять данные в опасный контекст
→ защита теряется на уровне фронта
👍 — знал/а
🔥 — теперь буду знать
📍 Навигация: [Вакансии]
🐸 Библиотека хакера
#ctf_challenge
Post #5476
895
- 🔥 8
- 👍 2
- 🥰 2