Как защитить службу REST с проверкой подлинности Auth0 от XSRF и перехвата сеанса? - PullRequest
0 голосов
/ 30 августа 2018

Обычная ситуация: СПА + ОТДЫХ. Если бы кто-то отказался от Auth0 и аутентифицировал веб-пользователей с помощью JWT, ему нужно было бы сохранить токен XSRF, предоставленный сервером при входе в систему, в cookie-файле и отправить его в заголовках запроса вместе с JWT.

В соответствующем официальном руководстве Auth0, https://auth0.com/docs/architecture-scenarios/spa-api, токены XSRF вообще не упоминаются. Что если кто-то украдет токен доступа у пользователя? Будет ли у них доступ к моему REST API для этого пользователя?

У Auth0 есть другое руководство Предотвращение подделки межсайтовых запросов (XSRF или CSRF) , но это странно кратко, и я не вижу, как это решает описанную мной проблему.

1 Ответ

0 голосов
/ 10 мая 2019

стратегия, которую Auth0 использует для предотвращения CSRF-атак, заключается в использовании nonce , который они называют state parameter. Это state генерируется с запросом аутентификации, а затем используется для корреляции запроса с ответом, полученным от аутентификации. (из документов Auth0 о том, как смягчить атаки CSRF)

Соответствующая информация из документов Auth0 по параметру состояния :

уникальное и не угадываемое значение, связанное с каждым запросом на аутентификацию, который должен быть инициирован. Это то уникальное и не угадываемое значение, которое позволяет вам предотвратить атаку, подтверждая, совпадает ли значение, полученное в ответе, с ожидаемым (значением, которое вы сгенерировали при инициировании запроса).

Если вы используете Auth0.js в вашем SPA, это одноразовые события или генерация и проверка состояния автоматически обрабатываются для вас.

...