Что такое XSS атака

«Что такое XSS атака» — вопрос из категории Безопасность, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

XSS (Cross-Site Scripting) — это уязвимость, позволяющая злоумышленнику внедрить вредоносный JavaScript-код на страницу, которую видят другие пользователи.

Пример уязвимого кода в Go (если не экранировать вывод):

fmt.Fprintf(w, "<div>%s</div>", userInput) // опасный вывод без экранирования

Как защититься:

  • Используйте html/template для автоматического экранирования:
tmpl, _ := template.New("safe").Parse(`<div>{{.}}</div>`)
tmpl.Execute(w, userInput) // автоматически экранирует HTML
  • Для JSON используйте json.Marshal, а не ручную конкатенацию.
  • Устанавливайте заголовок Content-Security-Policy (CSP).

XSS бывает хранимый (в базе), отражённый (в URL) и DOM-based (на клиенте).