Комментарии 11
Очень интересно! Спасибо! Только по вашей статье начал немного понимать что и как работает в GraphQL.
0
Все же GraphQL дырявый или нет? Хотелось бы прочитать более конкретные выводы.
Для получания данных, не входящих в текущую GraphQL схему, все же надо дергать программистов, так что нельзя сказать, что GraphQL имеет какое-то преимущество перед REST.
REST API предоставляет ту информацию, которую в API заложит разработчик, то есть в случае, если вам необходимо получить больше или меньше информации, чем предполагает API, то нужны будут дополнительные действия. Опять же, GraphQL выдаёт точно запрашиваемую информацию.
Полезным дополнением будет то, что в GraphQL есть схема, описывающая, как и какие данные клиент может получить.
Для получания данных, не входящих в текущую GraphQL схему, все же надо дергать программистов, так что нельзя сказать, что GraphQL имеет какое-то преимущество перед REST.
+2
GraphQL дырявый ровно настолько, насколько это реализует разработчик. Нельзя сказать дырявый REST или нет? Дырявый GraphQL или нет? Это стандарты, которые описывают то, как должно быть устроено API-приложение. А дырявым Вы его сделаете или нет — решать Вам.
+3
Хотелось бы тогда в выводах услышать некоторые рекомендации по организации сервиса, а то упоминаются возможные проблемы, а вот способов их избежать — нет. Спасибо.
0
Спасибо за статью! А можно ли как-то понять, откуда конкретно qraphql берет информацию для ответа? Например, что name из запроса — это поле name в таблице tablename?
0
В рамках интроспекции Вы сначала узнаете какие запросы существуют в принципе, затем какие есть поля у каждого запроса можно узнать по примеру 3, что в статье. Чтобы точнее понять, какие поля есть и что из них что означает рекомендую потестировать приложения, указанные в начале статьи. После этого многие вопросы сами решатся.
+3
mutation {
createPerson(username:«Vasya», password: «Qwerty1», isAdmin: True) {
}
}
Если в схеме не объявлено поле isAdmin, то GraphQL не примет на его на вход, даже если в самой модели данных куда пишет запрос такое поле существует.
А если же разработчик объявил в клиентской съеме такое поле, то это большой вопрос, доверять ли разработку АПИ этому человеку.
0
Согласен, однако наш мир не идеален и человеческий фактор почти всегда присутствует. Пентест отчасти и нужен для того, чтобы таких ошибок было как можно меньше, ведь даже крупные компании могут допускать такие промахи:
Github authorization bypass vulnerability
Github authorization bypass vulnerability
0
В тексте допущена ошибка?
Вместо Subscription указано Description?
В GraphQL существует 3 основных вида запросов:
- Query
- Mutation
- Description
Вместо Subscription указано Description?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пентест приложений с GraphQL