Практическое руководство FindRisk
Безопасность GraphQL и WebSocket: права, стоимость запросов и сессии
Обычный лимит HTTP-запросов не описывает стоимость GraphQL, а проверка при WebSocket handshake не гарантирует права на каждое сообщение. Рассматривайте операции, пользователей и ресурсы, а не только сетевую точку входа.
Что сделать
Материалы по теме
GraphQL: защита от сложных запросов, batching и перегрузки
Почему лимита HTTP-запросов недостаточно для GraphQL: глубина, стоимость, aliases, batching и ограничения resolver-ов.
Открытая GraphQL introspection: схема API и контроль доступа
Публичная introspection GraphQL раскрывает схему API и названия операций. Разбираем, когда это допустимо и как защитить production.
Безопасность WebSocket: Origin, сессии и права на сообщения
Как предотвратить cross-site WebSocket hijacking и проверять права на каждое сообщение, а не только при открытии соединения.
BOLA и IDOR в API: проверка доступа к объектам
Почему подмена идентификатора объекта не должна менять доступ и как проверять права без опасных действий.
Нет ограничений частоты запросов API: риски и настройка rate limit
Неограниченная частота обращений может привести к перегрузке API и злоупотреблению дорогостоящими операциями. Как подобрать лимиты и проверить их безопасно.
Завершение сессии после выхода: почему удаления cookie недостаточно
Почему выход должен завершать серверную сессию, а не только удалять cookie в браузере.
Источники и границы
- Публичная схема не доказывает уязвимость, а закрытая схема не заменяет контроль доступа.
- Проверка требует тестовых ролей и наблюдения за внутренней стоимостью операций.