Back to questions
Wildberries
Junior — Middle
83
Какими методами можно защититься от выполнения межсайтового скриптинга (XSS)?
Companies where asked
Answer from AI
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)
}
Таким образом, даже если пользователь введет вредоносный скрипт, он будет выведен как текст, а не выполнен.