Sobes.tech
Назад к вопросам
Junior — Middle
81

Какими методами можно защититься от выполнения межсайтового скриптинга (XSS)?

Компании, где спрашивали
WildberriesWildberries

Ответ от нейросети

sobes.tech AI

Для защиты от межсайтового скриптинга (XSS) применяют несколько основных методов:

  • Экранирование вывода: Все данные, которые выводятся в HTML, должны быть корректно экранированы, чтобы специальные символы (например, <, >, &) не интерпретировались как код.
  • Использование Content Security Policy (CSP): CSP позволяет ограничить источники скриптов и других ресурсов, снижая риск выполнения вредоносного кода.
  • Валидация и фильтрация входных данных: Проверять и очищать пользовательский ввод, удаляя или кодируя потенциально опасные символы.
  • Использование безопасных шаблонизаторов: В Go, например, пакет html/template автоматически экранирует данные при вставке в HTML.

Пример в Go с использованием html/template:

package main

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

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

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

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