Назад к вопросам
Middle+
2
Расскажи про XSS-атаки: виды и способы защиты.
Компании, где спрашивали
Скиф трейд
Ответ от нейросети
sobes.tech AI
XSS (Cross-Site Scripting) — это уязвимость, при которой злоумышленник внедряет вредоносный скрипт в веб-страницу, который затем выполняется в браузере других пользователей.
Виды XSS:
- Stored XSS (постоянный) — вредоносный скрипт сохраняется на сервере (например, в базе данных) и отображается всем пользователям.
- Reflected XSS (отражённый) — скрипт передаётся через URL или форму и сразу же отражается в ответе сервера.
- DOM-based XSS — уязвимость возникает из-за неправильной обработки данных на стороне клиента (в JavaScript), без участия сервера.
Способы защиты:
- Экранирование (escaping) всех пользовательских данных при выводе в HTML, атрибутах, JavaScript, CSS.
- Валидация и фильтрация входящих данных на сервере.
- Использование Content Security Policy (CSP) для ограничения источников скриптов.
- Применение современных фреймворков, которые автоматически защищают от XSS.
Пример экранирования в JavaScript:
function escapeHtml(text) {
return text
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
const userInput = '<script>alert("XSS")</script>';
const safeContent = escapeHtml(userInput);
document.getElementById('output').innerHTML = safeContent;
Такой подход предотвращает выполнение вредоносного кода.