Sobes.tech
Назад к вопросам
Middle+
2

Расскажи про XSS-атаки: виды и способы защиты.

Компании, где спрашивали
Скиф трейд

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

sobes.tech AI

XSS (Cross-Site Scripting) — это уязвимость, при которой злоумышленник внедряет вредоносный скрипт в веб-страницу, который затем выполняется в браузере других пользователей.

Виды XSS:

  1. Stored XSS (постоянный) — вредоносный скрипт сохраняется на сервере (например, в базе данных) и отображается всем пользователям.
  2. Reflected XSS (отражённый) — скрипт передаётся через URL или форму и сразу же отражается в ответе сервера.
  3. DOM-based XSS — уязвимость возникает из-за неправильной обработки данных на стороне клиента (в JavaScript), без участия сервера.

Способы защиты:

  • Экранирование (escaping) всех пользовательских данных при выводе в HTML, атрибутах, JavaScript, CSS.
  • Валидация и фильтрация входящих данных на сервере.
  • Использование Content Security Policy (CSP) для ограничения источников скриптов.
  • Применение современных фреймворков, которые автоматически защищают от XSS.

Пример экранирования в JavaScript:

function escapeHtml(text) {
  return text
    .replace(/&/g, "&")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/"/g, "&quot;")
    .replace(/'/g, "&#039;");
}

const userInput = '<script>alert("XSS")</script>';
const safeContent = escapeHtml(userInput);
document.getElementById('output').innerHTML = safeContent;

Такой подход предотвращает выполнение вредоносного кода.