Cyber Security Academy · Урок

Нарушение авторизации

BOLA и недостатки контроля доступа

Урок 2 из 413 шагов

«Нарушение авторизации» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

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

Аутентификация подтверждает, кто Вы. Авторизация определяет, что Вам разрешено делать.

Нарушенная авторизация означает, что система позволяет пользователям делать то, чего им делать нельзя, или видеть то, чего им видеть нельзя.

Что такое BOLA

BOLA означает нарушение авторизации на уровне объектов.

Это главный риск API: API проверяет, вошли ли Вы в систему, но не проверяет, действительно ли конкретный объект, к которому Вы обращаетесь, принадлежит Вам.

Пример BOLA

Представьте, что номер Вашей учётной записи — 100.

GET /api/users/100/orders

Если Вы измените ID, а сервер всё равно ответит, значит, Вы только что прочитали заказы другого человека. Это BOLA.

Почему возникает BOLA

Разработчики часто доверяют идентификатору из запроса.

Они забывают проверить, действительно ли вошедший в систему пользователь владеет этим объектом. Решение — проверять право владения в каждом запросе.

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

Ещё один недостаток — BFLA: нарушение авторизации на уровне функций.

Обычный пользователь вызывает действие, доступное только администратору, и оно выполняется, потому что конечная точка не проверяет роль пользователя.

Пример BFLA

Рассмотрим маршрут администратора:

DELETE /api/admin/users/55

Если обычный пользователь может успешно вызвать его, API не обеспечил соблюдение правил доступа на основе ролей.

Массовое присваивание

Некоторые API без проверки сопоставляют поля запроса с записью.

Пользователь может добавить поле вроде role=admin к обновлению профиля и незаметно повысить собственные привилегии.

Проверяйте на сервере

Никогда не полагайтесь на клиентскую часть, которая скрывает кнопки или поля.

Сервер должен обеспечивать выполнение каждого решения об авторизации, поскольку злоумышленники отправляют запросы напрямую, полностью обходя Ваш интерфейс.

Используйте непредсказуемые идентификаторы

Последовательно возрастающие идентификаторы упрощают эксплуатацию BOLA.

Использование случайных идентификаторов, например UUID, не заменяет проверки авторизации, но устраняет простую атаку перебором следующего числа.

Запрет по умолчанию

Безопасный API отказывает в доступе по умолчанию.

Доступ разрешается только тогда, когда его предоставляет явное правило. Поэтому забытая проверка приводит к отказу, а не к утечке данных.

Проверяйте авторизацию

Ошибки авторизации легко не заметить, поэтому намеренно проверяйте её.

Попробуйте получить доступ к данным другого пользователя с помощью собственного токена. Если это сработает, Вы обнаружили серьёзную уязвимость, которую необходимо устранить.

Быстрая проверка

API подтверждает, что Вы вошли в систему, но возвращает запись другого пользователя после изменения ID. О какой уязвимости идёт речь?

Итоги

Нарушенная авторизация позволяет пользователям получать доступ к тому, к чему они не должны иметь доступа. Обращайте внимание на BOLA, BFLA и массовое присваивание.

Проверяйте право владения и роли на сервере, запрещайте доступ по умолчанию и целенаправленно проверяйте авторизацию.

Можно начать бесплатно

Изучай Cyber Security Academy с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
76
Уроки
303

Часто задаваемые вопросы

Урок «Нарушение авторизации» бесплатный?

Да — полный текст урока «Нарушение авторизации» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Нарушение авторизации»?

BOLA и недостатки контроля доступа Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Нарушение авторизации»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Поверхность атаки API
  2. Нарушение авторизации
  3. Ограничение частоты запросов и злоупотребления
  4. Защита ключей API
← Назад к Cyber Security Academy