Код должен выполнить где-то .
Гораздо проще инициировать выполнение произвольного кода, вставляя неверные данные в браузер пользователя (поскольку он ожидает получить HTML с JS, смешанным с ним), чем запускать его на сервере.
Если вместо этого он был запущен на сервере, то это не будет атака XSS.
(SQL-инъекция - пример атак на выполнение кода на сервере).
У меня есть подозрение, что это потому, что браузер может быть
авторизовался на сервере. Таким образом, только если браузер
выполняет полезную нагрузку, захватит ли хакер этот конкретный
конфиденциальная / ограниченная информация учетной записи пользователя.
Вот почему XSS полезен для злоумышленников (в противном случае они могут просто отправлять HTTP-запросы из своего браузера).