Что такое XSS (межсайтовый скриптинг)?

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

Короткий ответ

Что ответить на собеседовании

XSS (Cross-Site Scripting) — это уязвимость веб-приложений, при которой злоумышленник внедряет вредоносный скрипт (обычно JavaScript) в контент, который затем исполняется в браузере других пользователей. Это позволяет красть сессионные куки, подделывать действия пользователя, перенаправлять на фишинговые сайты и т.п.

Подробный разбор

Ответ с пояснениями

XSS (Cross-Site Scripting) — это уязвимость веб-приложений, при которой злоумышленник внедряет вредоносный скрипт (обычно JavaScript) в контент, который затем исполняется в браузере других пользователей. Это позволяет красть сессионные куки, подделывать действия пользователя, перенаправлять на фишинговые сайты и т.п.

В Go-приложениях XSS предотвращают, корректно экранируя пользовательский ввод при выводе в HTML, используя шаблоны с автоматическим экранированием (например, пакет html/template), а также применяя Content Security Policy (CSP).

Пример безопасного вывода в Go:

import (
    "html/template"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    t := template.Must(template.New("page").Parse(`<div>{{.}}</div>`))
    userInput := r.URL.Query().Get("input")
    t.Execute(w, userInput) // автоматически экранирует
}

Таким образом, вредоносный код не будет исполнен в браузере.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку