1 of 11

Лекция 3 — Межсайтовый скриптинг (XSS)

2 of 11

Введение в XSS

  • Межсайтовый скриптинг (XSS) — это уязвимость, позволяющая злоумышленнику внедрять вредоносные скрипты в веб-страницы, которые выполняются в браузере пользователя. Цель — кража данных, сессий или изменение содержимого страниц.

3 of 11

Типы XSS-атак

  • 1. Reflected XSS — скрипт возвращается сервером при запросе.
  • 2. Stored XSS — вредоносный код сохраняется на сервере и выполняется у всех пользователей.
  • 3. DOM-based XSS — выполняется на стороне клиента, при изменении структуры DOM.

4 of 11

Пример Reflected XSS

  • Пример URL: http://example.com/search?q=<script>alert('XSS')</script>
  • При открытии ссылки сервер возвращает вредоносный код, который выполняется в браузере жертвы.

5 of 11

Пример Stored XSS

Злоумышленник оставляет комментарий с кодом <script>alert('Ваши данные украдены!');</script>.

Когда другой пользователь открывает страницу — скрипт выполняется и может похитить данные.

6 of 11

Пример DOM-based XSS

Пример ссылки: http://example.com/profile#<script>alert('XSS')</script>

Если приложение некорректно обрабатывает фрагмент URL, скрипт выполняется на клиентской стороне.

7 of 11

Последствия XSS-атак

• Кража сессионных cookie.

• Выполнение действий от имени пользователя.

• Фишинг и перенаправление на поддельные сайты.

• Компрометация системы и распространение вредоносного кода.

8 of 11

Методы защиты (1)

  • 1. Экранирование данных: замена <, >, &, ' и " на безопасные HTML-коды.
  • 2. Валидация данных на сервере и клиенте.
  • 3. Использование безопасных методов вместо document.write или innerHTML.

9 of 11

Методы защиты (2)

  • 4. Внедрение Content Security Policy (CSP): ограничение выполнения скриптов только с доверенных источников.
  • 5. Использование современных фреймворков (React, Angular, Vue), которые автоматически экранируют ввод.

10 of 11

Примеры CSP

  • Пример заголовка:
  • Content-Security-Policy: script-src 'self' https://trusted-scripts.com;
  • Разрешает выполнение только доверенных скриптов и предотвращает внедрение XSS-кода.

11 of 11

Вопросы для самопроверки

  • 1. Что такое XSS и чем он опасен?
  • 2. В чём разница между Reflected и Stored XSS?
  • 3. Как работает DOM-based XSS?
  • 4. Какие меры защиты предотвращают XSS?
  • 5. Что делает Content Security Policy (CSP)?