Короче, XSS — это когда кто-то может засунуть свой скрипт в твою страницу, и если не держать оборону, это быстро превращается в глюки, кражу сессий и вообще неприятности. Самое главное — фильтровать входные данные, но просто чистить HTML — мало.
Кто работал с этим на практике? Интересует именно реальный опыт, а не общая теория.
Фильтрация — это хорошо, но без правильного контекста код не спасёт. Вот, например, есть разница между экранированием вывода в HTML и в атрибутах. Сами по себе санитайзеры часто пропускают что-то, особенно если это сложный ввод с фреймами или ивентами. По опыту: лучше комбинировать разные способы защиты и внимательно проверять, что реально приходит с фронта.
Честно, для меня пока сложно сразу все фильтры и экранирование врубить, особенно где что надо ставить — в html, в атрибутах и так далее. Но слышал, что лучше не полагаться на один метод, а несколько раз проверять входные данные с разных сторон. Типа комбинировать фильтры и тщательно смотреть, что реально через форму летит. Пока сам так стараюсь делать, чтобы не было дыр.