Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: XSS, cross-site scripting, sanitization, CSP, escaping

Какие есть способы защиты от XSS?

Вопрос проверяет знание методов защиты от межсайтового скриптинга (XSS), что необходимо для обеспечения безопасности веб-приложений.

Короткий ответ

XSS (межсайтовый скриптинг) — это атака, при которой злоумышленник внедряет вредоносный скрипт в веб-страницу. Основные способы защиты: экранирование вывода данных, валидация и санитизация ввода, использование Content Security Policy (CSP), установка HttpOnly флага для кук. Также важно избегать опасных функций, таких как innerHTML, и использовать безопасные шаблонизаторы.

Длинный ответ

Что такое XSS и почему это важно?

XSS (Cross-Site Scripting) — это тип атаки, при котором злоумышленник внедряет вредоносный JavaScript-код в веб-страницу, которая затем выполняется в браузере жертвы. Это может привести к краже кук, перенаправлению на фишинговые сайты или изменению содержимого страницы. Защита от XSS критична для любого веб-приложения, работающего с пользовательскими данными.

Основные методы защиты

  • Экранирование вывода (Output Escaping): Преобразование специальных символов (например, <, >, &) в их HTML-сущности перед вставкой в страницу. Это предотвращает интерпретацию данных как кода.
  • Валидация и санитизация ввода: Проверка и очистка данных от пользователя на сервере. Например, удаление тегов <script> или использование белого списка разрешённых тегов.
  • Content Security Policy (CSP): HTTP-заголовок, который ограничивает источники скриптов, стилей и других ресурсов. Например, Content-Security-Policy: script-src 'self' разрешает выполнение только скриптов с того же домена.
  • HttpOnly флаг для кук: Установка флага HttpOnly при создании кук предотвращает доступ к ним через JavaScript, что защищает от кражи сессионных данных.
  • Избегание опасных функций: Не использовать innerHTML, document.write() или eval() с пользовательскими данными. Вместо этого применять textContent или безопасные шаблонизаторы (например, React автоматически экранирует вывод).

Пример кода

// Опасный код (уязвим к XSS)
const userInput = "<script>alert('XSS')</script>";
document.getElementById('output').innerHTML = userInput;

// Безопасный код (экранирование)
const safeOutput = userInput.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
document.getElementById('output').textContent = safeOutput;

// Пример CSP в HTML
// <meta http-equiv="Content-Security-Policy" content="script-src 'self'">

Вывод

Защита от XSS требует комплексного подхода: экранирование вывода, валидация ввода, использование CSP и безопасных API. Эти методы особенно важны при разработке приложений с пользовательским контентом (формы, комментарии, чаты). Применение этих практик снижает риск атак и повышает доверие пользователей.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#XSS

#cross-site scripting

#sanitization

#CSP

#escaping

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.