Глупый вопрос: беспокойство по поводу использования REST API бэкэнд-сервера в приложении React

#javascript #node.js #reactjs #api #rest

#javascript #node.js #reactjs #API #rest

Вопрос:

Например, для подключения (в основном для выполнения запросов) нашего приложения React к нашему бэкэнд-серверу мы должны использовать бэкэнд REST API, например, для входа пользователя в систему, извлечения данных из бэкэнда.

Но разве использование REST API в компонентах React не сделало бы API доступным для каждого пользователя, и любой злонамеренный разум мог бы создать хаос или сделать ненужные запросы к серверу (например, с помощью Postman).

Есть ли какой-нибудь способ скрыть ключи API, я видел другой ответ на аналогичный вопрос «Как скрыть ключи API», но четкого ответа нет, некоторые говорят, что нужно добавить API с помощью REACT_APP_ в файле dotenv, но некоторые говорят, что это небезопасно, хотя я пытался добавить REACT_APP_, новсе еще API виден во внешнем интерфейсе.

Есть ли решение этой проблемы?

Комментарии:

1. Вот почему вам нужна аутентификация и регулирование.

2. Не могли бы вы подробнее рассказать о «регулировании»?

Ответ №1:

Использование REST API из вашего приложения react не раскрывает эти конечные точки для общественности. Благодаря существующему REST API эти конечные точки уже доступны для общественности, и любой пользователь может их использовать. Задача серверов заключается в том, чтобы убедиться, что эти конечные точки заблокированы и защищены (требуется аутентификация и т. Д.), А не клиенты.

Комментарии:

1. Например, аутентификация клиента при каждом входящем запросе?

2. Правильно. На самом деле это очень полезно для файлов cookie — после входа пользователя в систему сервер предоставляет клиенту файл cookie, который информирует сервер об успешном входе в систему. (файлы cookie могут быть подделаны, поэтому часто используется некоторая криптография, чтобы сервер мог доверять cooke). Затем пользователь может передавать этот файл cookie с каждым запросом для аутентификации при каждом запросе.