Если мы ограничим нашу конечную точку просто использованием Content-Type: application / json
мы в безопасности?
JSON не застрахован от CSRF-атак (но требует немного дополнительной работы для злоумышленника) и, соответственно, не будет GraphQL, если не настроен должным образом. Если разбить его на запросы / ответы, обычный сценарий CSRF будет применяться здесь:
- Victim аутентифицируется с помощью вашего веб-сервиса GraphQL.
- Атакующий отправляет вредоносную ссылку на жертву.
- Жертва переходит по ссылке и посещает вредоносный веб-сайт злоумышленника.
- Сайт злоумышленника отправляет запросы JSON с использованием cookie-файла жертвы.
- Веб-служба получает запросы JSON с допустимым токеном / файлом cookie сеанса, и функциональность запускается жертвой без их ведома.
В этом случае ваш сервис уязвим для CSRF. Убедитесь, что CORS настроен на разрешение запросов только из белого списка доверенных доменов, и убедитесь, что токен CSRF используется. Реализация нескольких средств защиты снизит риск успешной атаки.
Следующая ссылка более подробно описана, и вы даже можете попробовать ее самостоятельно:
https://blog.appsecco.com/exploiting-csrf-on-json-endpoints-with-flash-and-redirects-681d4ad6b31b
Этот ответ также актуален:
Уязвимы ли веб-службы JSON к атакам CSRF?