Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: xss, csrf, security, csp, basic

Объясните защиту от Cross-Site Scripting (XSS) и Cross-Site Request Forgery (CSRF) в контексте JavaScript.

Этот вопрос помогает понять основные уязвимости в веб-приложениях и методы их защиты. Знание о XSS и CSRF критически важно для создания безопасных JavaScript-приложений.

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

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

Защита от XSS включает экранирование пользовательского ввода и применение Content Security Policy (CSP).

Cross-Site Request Forgery (CSRF) — это атака, при которой злоумышленник заставляет пользователя выполнить нежелательное действие на сайте, где он аутентифицирован.

Защита от CSRF включает использование уникальных токенов для подтверждения запросов и проверки заголовков.

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

XSS и CSRF являются распространенными уязвимостями, которые могут серьезно повредить безопасности веб-приложений.

Рассмотрим каждую из них и методы защиты:

  • Cross-Site Scripting (XSS):

    • XSS-атаки происходят, когда злоумышленник вставляет вредоносный JavaScript-код в веб-страницу, которая затем выполняется в браузере других пользователей. Это может привести к кражам данных, сессий и многому другому.

    Защита от XSS:

    • Экранирование пользовательского ввода: Все данные, полученные от пользователей, должны быть экранированы перед их отображением на странице. Это предотвращает выполнение вредоносного кода.

    • Использование Content Security Policy (CSP): CSP позволяет ограничить источники контента, что снижает вероятность выполнения вредоносных скриптов.

    • Валидация и фильтрация ввода: Проверяйте и фильтруйте пользовательский ввод, чтобы предотвратить вставку вредоносного кода.

      // Экранирование HTML 
      function escapeHtml(unsafe) {
      	return unsafe        
      		.replace(/&/g, "&")        
      		.replace(/</g, "&lt;")        
      		.replace(/>/g, "&gt;")        
      		.replace(/"/g, "&quot;")        
      		.replace(/'/g, "&#039;"); 
      }
  • Cross-Site Request Forgery (CSRF):

    CSRF-атаки происходят, когда злоумышленник заставляет аутентифицированного пользователя выполнить нежелательное действие на веб-сайте. Например, это может быть изменение настроек аккаунта или отправка платежа.

    Защита от CSRF:

    • Использование токенов: Генерируйте уникальные токены для каждого запроса, требующего изменения состояния. Токен должен проверяться на сервере, чтобы удостовериться, что запрос был инициирован пользователем.

    • Проверка заголовков: Проверяйте заголовки запроса, такие как Referer и Origin, чтобы убедиться, что запрос пришел с доверенного источника.

      // Пример проверки CSRF-токена на сервере (Node.js) 
      app.post('/update-settings', (req, res) => {
      	const token = req.body.csrfToken;    
      	if (token !== req.session.csrfToken) {    
      		return res.status(403).send('Forbidden');    
      	}  // Обработка обновления настроек 
      });

Понимание и реализация защиты от XSS и CSRF — это ключевые аспекты безопасности веб-приложений на JavaScript, которые помогают защитить пользователей и их данные.

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

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

#xss

#csrf

#security

#csp

#basic

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