Защита GraphQL и CSRF - PullRequest
       47

Защита GraphQL и CSRF

0 голосов
/ 28 августа 2018

Я много читаю вокруг:

  1. https://github.com/pillarjs/understanding-csrf
  2. https://security.stackexchange.com/questions/10227/csrf-with-json-post
  3. Уязвимы ли веб-службы JSON к атакам CSRF?
  4. (Ничего на сайте ApolloServer: https://www.apollographql.com/docs/apollo-server/)

Однако я пока не могу понять, защищена ли наша конечная точка ("/ graphql") для этого типа атаки или необходимо ли защищать ее такими решениями: https://github.com/expressjs/csurf.

Мне непонятно, что здесь: https://github.com/pillarjs/understanding-csrf говорят:

При неправильном использовании токенов CSRF: ... Добавление их в вызовы JSON AJAX Как отмечалось выше, если вы не поддерживаете CORS, а ваши API-интерфейсы строго JSON, нет никакого смысла добавлять токены CSRF в ваши вызовы AJAX.

Если мы ограничиваем нашу конечную точку только использованием Content-Type: application/json, мы в безопасности?

1 Ответ

0 голосов
/ 01 октября 2018

Если мы ограничим нашу конечную точку просто использованием Content-Type: application / json мы в безопасности?

JSON не застрахован от CSRF-атак (но требует немного дополнительной работы для злоумышленника) и, соответственно, не будет GraphQL, если не настроен должным образом. Если разбить его на запросы / ответы, обычный сценарий CSRF будет применяться здесь:

  1. Victim аутентифицируется с помощью вашего веб-сервиса GraphQL.
  2. Атакующий отправляет вредоносную ссылку на жертву.
  3. Жертва переходит по ссылке и посещает вредоносный веб-сайт злоумышленника.
  4. Сайт злоумышленника отправляет запросы JSON с использованием cookie-файла жертвы.
  5. Веб-служба получает запросы JSON с допустимым токеном / файлом cookie сеанса, и функциональность запускается жертвой без их ведома.

В этом случае ваш сервис уязвим для CSRF. Убедитесь, что CORS настроен на разрешение запросов только из белого списка доверенных доменов, и убедитесь, что токен CSRF используется. Реализация нескольких средств защиты снизит риск успешной атаки.

Следующая ссылка более подробно описана, и вы даже можете попробовать ее самостоятельно: https://blog.appsecco.com/exploiting-csrf-on-json-endpoints-with-flash-and-redirects-681d4ad6b31b

Этот ответ также актуален: Уязвимы ли веб-службы JSON к атакам CSRF?

...