В настоящее время я создаю веб-приложение (и, в конечном счете, гибридное мобильное приложение), которое будет управляться с помощью созданного мной RESTful API. Аутентификация пользователя в API выполняется через веб-токены JSON (которые передаются в заголовке Bearer через HTTPS).
Однако, поскольку авторизация! = Аутентификация, я думал о том, как эффективно уменьшить атаки CSRF на приложение. ,JWT, который возвращается конечной точкой /auth/login
API, будет сохранен в файле cookie в домене приложения и использован для последующих запросов AJAX к API.
Поскольку мы используем cookie для хранения токена аутентификации, я считаю, что он открыт для CSRF, даже если все запросы к API из приложения будут выполняться через AJAX (без прямого POST-запроса из форм,и т. д.)
Одно из предложенных мною решений - генерировать токен CSRF с каждым запросом к API и возвращать его с полезной нагрузкой. Этот CSRF будет затем сохранен в приложении (переменная Javascript) и отправлен со следующим запросом, где он будет проверен и авторизован в API. У меня такой вопрос: достаточно ли этого для предотвращения CSRF-атак через Интернет и гибридное мобильное приложение? Или это не нужно?
Мой вопрос отчасти похож на этот , но имеет определенную разницу.