Cross-Site Scripting (XSS) — один из самых коварных и распространённых видов уязвимостей в веб-разработке. Даже опытные разработчики иногда «ловят» XSS, особенно когда дело касается шаблонизаторов. Сегодня разберём, как избежать XSS, что уже умеют делать популярные движки, а что остаётся вашей ответственностью. Пример в Twig: Если в username прилетит что-то вроде: то на странице вы увидите: и атака не сработает. ⚠️ Но будьте осторожны: как только вы используете |raw в Twig или {!! !!} в Blade — вся защита отключается. Не все движки заботятся о вашей безопасности. Например: EJS Pug Ошибка многих начинающих разработчиков — «ускорить» работу и вставлять HTML напрямую. Но это прямое приглашение к XSS. Представим, что злоумышленник регистрируется и в качестве имени пользователя указывает: Если шаблонизатор не экранирует вывод — этот код выполнится в браузере жертвы. Более сложный пример (уход от фильтров): В таких случаях защита на уровне шаблонизатора уже не всегда помогает — нужно фильтро