Является ли следующая безопасная реализация проверки токена CSRF? В частности, я хочу назвать эту конечную точку Stripe API:
https://connect.stripe.com/express/oauth/authorize?redirect_uri=https://example.com&client_id=ca_11111&state={STATE_VALUE}
и в документах с полосами написано
Чтобы предотвратить CSRF-атаки, добавьте параметр состояния, передав в качестве значения уникальный токен. Мы включим состояние, которое вы нам сообщили, когда мы перенаправим пользователя обратно на ваш сайт.
Я думаю о реализации следующим образом:
- браузер генерирует случайный токен и сохраняет его в куки (или локальном хранилище)
- браузер вызывает вышеуказанную конечную точку
- полоса перенаправляет на мое приложение на https://example.com
- когда я получаю ответ обратно, я проверяю содержимое параметра state
и сравниваю его со значением, хранящимся в локальном хранилище или в моем файле cookie.
Это безопасная / правильная реализация CSRF? Или мне нужно как-то задействовать бэкэнд-сервис?
(здесь документация на полосу: https://stripe.com/docs/connect/express-accounts)