Почему UUID не защищает от IDOR
П@pentesting_channelавтор про «it»
1 месРазбор типичной ошибки безопасности, когда разработчики полагаются на UUID как на защиту, забывая про проверку прав доступа (IDOR).
Безопасность данных зависит не от сложности идентификатора, а от проверки прав доступа.
- UUID не является средством защиты от несанкционированного доступа.
- Передача чужих ID в ответе API — критическая уязвимость, ведущая к утечке данных.
- Разработчики должны проверять принадлежность объекта пользователю при каждом запросе.
Все думают UUID нельзя подобрать. Ага как бы не так 😄
/api/order/a1b2c3d4-e5f6-7890-abcd-ef1234567890 - ну как ты угадаешь?
Никак. Но тебе и не надо угадывать.
Вчера смотрю как QA на проекте у себя тестит (я его курирую). Открывает свой заказ. В ответе приходит:
{
"my_order"
"a1b2c3d4...",
"other_orders"
[
"b2c3d4e5...",
"c3d4e5f6..."
]
}
Бекендер для удобства отдал список всех последних заказов в том же ответе. С UUID.
QA увидел и прошел мимо. "Ну это же просто список, UUID же не угадаешь".
А это уже IDOR. Критический. Тебе отдали чужие UUID. Дальше просто подставляешь.
Тот же баг что и с 1024 -> 1025 или 10-11.
Только в 2026 так делают чаще, потому что думают UUID = защита.
QA бы завел как "лишние данные в ответе" - low.
AppSec заведет как "IDOR + Information Disclosure, утечка PII" - critical + премия.
Бекенд не защищает UUID. Защищает проверка "твой ли это заказ".
Сколько раз вы видели в ответе чужие id и не обращали внимания?
Вы можете верить можете нет я такие проблемы вижу постоянно, ок не постоянно вру, но оооочеь часто
Наверное не зря да IDOR на первом месте стоит??
Мораль поста!
Есть UUID? Не переберешь особенно v4, v7
Но что если получить UUID где-то в другом месте?
Вот и думайте
Кратко (AI)
Автор объясняет, что использование UUID не является защитой от уязвимости IDOR (Insecure Direct Object Reference). Ошибка заключается в том, что разработчики часто передают в API лишние данные, включая чужие идентификаторы, полагаясь на сложность подбора UUID, вместо реализации проверки прав доступа на стороне сервера.
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖