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)
}
Таким образом, даже если пользователь введет вредоносный скрипт, он будет выведен как текст, а не выполнен.