Защита REST API Node.js для веб-приложения React.js, а также отдельного API - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь создать безопасный метод аутентификации для моего REST API Node.js, который будет работать как для прямых запросов API, так и из моего веб-приложения React.js.Я немного читал о том, как правильно хранить токены аутентификации для защиты от XSS и CSRF, поэтому я хотел бы представить, что я придумаю, чтобы увидеть, есть ли в нем какие-либо дыры или он будет работать наall.


Этот метод будет использовать комбинацию JWT, localstorage (приложение React) и куки (Node API).

API имеет конечную точку /authentication.При вызове он сгенерирует токен CSRF и включит его в полезную нагрузку JWT.Затем он установит файл cookie (HttpOnly, безопасный) с JWT и вернет JWT.


Когда из моего веб-приложения React.js вызывается /authentication, он получит JWT, исохраните только токен CSRF в localstorage.

Затем, когда приложению потребуется извлечь ресурс из API, оно будет отправлять токен CSRF в заголовке каждого запроса.


Приложение Node.js будет иметь промежуточное программное обеспечение, которое проверяет несколько вещей:

  • Если присутствует весь JWT, оно будет аутентифицироваться.Это тот случай, когда пользователи взаимодействуют с API напрямую.
  • Если это просто токен CSRF, мы сначала проверим подпись JWT в файле cookie, а затем сравним полученную CSRF с той, что впеченье.Если они совпадают, то он будет аутентифицироваться.

Я думаю, что таким образом JWT никогда не будет отображаться в веб-приложении для каких-либо атак.

эта модель кажется достаточно безопасной?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...