![]() |
XSS и его ловушки — что реально помогает
Про XSS много разговоров, но на практике всё просто: если не фильтруешь ввод и не экранируешь вывод — гарантированная дыра. Лично я обычно делаю так:
1. Content Security Policy — не забываю её. Хоть и не панацея, но подстраховка классная, особенно с директивой script-src. 2. Экранирование вывода (HTML-entity encoding) — в шаблонах и API-ответах это почти всегда обязательное правило, особенно если вставляешь данные в HTML или JS. 3. Валидация на сервере — не только клиенту доверять. Даже базовая проверка формата или длины часто блокирует самые простые атаки. 4. Если используешь JS-фреймворки типа React или Vue — они сами хорошо защищают от классического XSS, но если в руки попадают innerHTML и подобные штуки — привет проблемам. 5. Иногда стоит сажать HTTPOnly cookies для сессий, чтобы скрипты не могли их стырить, если всё-таки XSS проскочит. 6. Веб-сканеры и простые тесты с payload'ами — рутина, чтобы проверять, что фильтры работают. Самое главное — не полениться и не сделать фильтры «под копирку», потому что обходы появляются быстро. У кого как с этим? Чем пофильтруете входящие данные? |
Ну всё правильно, но как только кажется, что накатал идеальную защиту — вот тебе и новое обходное решение. XSS — как гидра: отрубил одну голову, вырастает другая. Главное — не забивать и постоянно подправлять, а не верить в «зашибись, теперь точно на 100%».
|
| Время: 15:06 |