Простите @MarkAmery и Евгения, но это неверно.
Ваше js + html (клиентское) приложение, работающее в браузере, МОЖЕТ быть настроено для исключения несанкционированных прямых вызовов API следующим образом:
- Первый шаг: настройте API для требования аутентификации. Клиент должен сначала идентифицировать себя через сервер (или какой - либо другой сервер безопасности) , например , с просьбой человека пользователя предоставить правильный пароль.
Перед аутентификацией вызовы API не принимаются.
Во время аутентификации возвращается «токен».
После аутентификации будут приниматься только вызовы API с "токеном" аутентификации.
Конечно, на этом этапе только авторизованные пользователи, у которых есть пароль, могут получить доступ к API, хотя, если они программисты, отлаживающие приложение, они могут получить доступ к нему напрямую для целей тестирования.
- Второй шаг: теперь настройте дополнительный API безопасности, который будет вызываться в течение короткого времени после того, как клиентское приложение js + html было первоначально запрошено с сервера. Этот «обратный вызов» сообщит серверу, что клиент был успешно загружен. Ограничьте вызовы REST API для работы только в том случае, если клиент был запрошен недавно и успешно.
Теперь, чтобы использовать ваш API, они должны сначала загрузить клиент и фактически запустить его в браузере. API будет принимать вызовы только после успешного получения обратного вызова и последующего ввода пользователя в течение короткого промежутка времени.
Так что вам не нужно беспокоиться о том, что это может быть неавторизованный пользователь без учетных данных.
(Заголовок вопроса: «Как мне защитить вызовы REST API», и, судя по большей части того, что вы говорите, это ваша главная проблема, а не буквальный вопрос, КАК вызывается ваш API, а скорее КЕМ, правильно? )