XSS: почему пользовательский текст не должен становиться кодом

Обработка содержимого зависит от того, куда именно приложение его вставляет.

Иллюстрация к теме, а не фотография описанного события. Raimond Spekking · CC BY-SA 4.0. Размер изменён; при показе возможно кадрирование.

Текст, атрибут HTML и адрес ссылки имеют разные правила допустимого представления. Если непроверенное содержимое интерпретируется браузером как исполняемый код, это создаёт опасный сценарий. Поэтому важно использовать подходящие средства экранирования и ограничивать места, где допускается HTML.

Для редакционного сервиса безопаснее явно определить допустимый формат статьи. Обычный текст с абзацами проще контролировать, чем произвольную разметку из внешней ленты. При необходимости форматирования нужен отдельный проверенный путь обработки, а также проверки ссылок и встроенного содержимого.

Источники

  1. Официальная документация — XSS: почему пользовательский текст не должен становиться кодомcheatsheetseries.owasp.org