Sobes.tech
Junior — Middle

¿Qué métodos se pueden usar para protegerse contra la ejecución de scripts entre sitios (XSS)?

sobes.tech AI

Respuesta de la IA

Для защиты от межсайтового скриптинга (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)
}

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