Безопасность и мониторинг

Урок 7.7 — Безопасность и мониторинг

Безопасность: что тестировщику нужно знать

Тестирование безопасности — это отдельная большая область (пентест, security QA). Но любой тестировщик должен понимать базовые концепции, чтобы проверять очевидные уязвимости.

Аутентификация vs Авторизация

Эти два понятия часто путают:

ПонятиеВопросПример
АутентификацияКто ты?Логин по паролю, вход через Google
АвторизацияЧто тебе разрешено?Может ли пользователь редактировать чужой профиль?

Тестировщик проверяет:

  • Можно ли получить доступ к данным без авторизации (без логина)?
  • Может ли обычный пользователь выполнить действие, доступное только администратору?
  • Может ли пользователь А получить доступ к данным пользователя Б (IDOR)?

HTTPS vs HTTP

  • HTTP — данные передаются в открытом виде. Любой в сети может перехватить и прочитать.
  • HTTPS — данные зашифрованы. Перехватить можно, прочитать — нельзя.

Тестировщик проверяет: весь сайт работает по HTTPS? Особенно страницы входа и оплаты. Если где-то используется HTTP — это баг.

Типичные уязвимости: концептуально

SQL-инъекция (SQL Injection) Атакующий вводит в форму часть SQL-запроса, чтобы изменить логику запроса к базе данных.

Пример уязвимого поля логина: если ввести в поле email строку ' OR '1'='1, можно войти без пароля.

Что тестировщик делает: вводит в текстовые поля специальные символы (', ", ;) и проверяет, не возвращается ли ошибка SQL или неожиданный результат.

XSS (Cross-Site Scripting) Атакующий вставляет JavaScript-код в поле ввода, и браузер другого пользователя его выполняет.

Пример: ввести в поле имени <script>alert('XSS')</script>. Если при просмотре профиля появляется alert — уязвимость есть.

Токены и сессии

Session-based vs Token-based аутентификация

ПодходКак работаетЧто хранится у клиента
Session-basedСервер хранит сессию, клиент получает session IDCookie с session ID
Token-based (JWT)Сервер создаёт подписанный токен с даннымиJWT-токен в localStorage или Cookie

Что проверяет тестировщик:

  • Инвалидируется ли токен при выходе из системы?
  • Работает ли токен после истечения срока (exp)?
  • Если скопировать токен из одного браузера — работает ли он в другом?

Мониторинг: как узнают о поломках в проде

В продакшене нет тестировщика. Нужно следить за тем, что происходит автоматически.

Sentry — инструмент трекинга ошибок:

  • Автоматически собирает JavaScript-ошибки с фронта и исключения с бэка
  • Показывает, сколько пользователей столкнулись с ошибкой
  • Сохраняет стек вызовов — разработчику не нужно воспроизводить

Datadog, New Relic, Prometheus + Grafana — мониторинг производительности:

  • Показывают время отклика, нагрузку на сервер, использование памяти
  • Алерты — уведомления, если метрика вышла за порог (например, время ответа > 2с)

Что тестировщик может использовать:

  • Попроси доступ к Sentry на тестовом окружении — видишь ошибки в реальном времени
  • Ошибки в Sentry иногда всплывают ещё до того, как пользователь успеет написать баг-репорт

Итоги модуля 7

Ты прошёл обзор всего технологического стека:

УрокТемаКлючевой навык тестировщика
7.1ВведениеПонимать, зачем знать стек
7.2FrontendDevTools, консоль, SPA, кросс-браузерность
7.3BackendHTTP-коды ошибок, логи, API-контракт
7.4База данныхSELECT для проверки, консистентность данных
7.5APIPostman, Swagger, REST vs GraphQL
7.6ИнфраструктураОкружения, CI/CD, Git-ветки
7.7БезопасностьAuth vs AuthZ, HTTPS, XSS/SQLi, мониторинг

Что мы запомним

  • Аутентификация = кто ты; Авторизация = что тебе можно
  • HTTPS — обязателен; HTTP для чувствительных данных — это баг
  • SQL-инъекция и XSS — базовые уязвимости, которые тестировщик проверяет вручную
  • Sentry и другие инструменты мониторинга — союзники тестировщика в бою с продакшн-багами
  • Знание технологий — не про код, а про то, чтобы быть эффективным участником команды разработки

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике