Короткий ответ: кодирование XSS должно происходить там, где данные помещаются в html или javascript, будь то на стороне сервера и / или на стороне клиента.Я мог бы легко представить, что данные, помещенные в тег сценария на стороне сервера, начинают должным образом кодироваться, но затем JavaScript на стороне клиента использует это значение небезопасным способом, создавая уязвимость XSS.данные в веб-страницу (будь то в html-теге, внутри -tags, в css. и т. д. - см. таблицу предупреждений OWASP XSS), которые мы должны кодировать.Затем, когда мы переходим на сторону клиента, нам также необходимо убедиться, что наш javascript не представляет проблем XSS.Например, это может быть XSS на основе DOM или пример, упомянутый выше.
Так что мой ответ таков: вам нужно выполнить кодирование как на стороне сервера, так и на стороне клиента.
Не знаюпонять, как связан третий вопрос.Фишинг может происходить разными способами.На совершенно другом домене, просто имитирующем исходную страницу и т. Д.
Редактировать: еще одна вещь.Если доверенные данные помещаются на серверную часть страницы без кодирования, клиентская сторона мало что может сделать, чтобы это исправить.Скорее всего, уже поздно.