Вибачте @MarkAmery та Eugene, але це неправильно.
Ваш додаток js + html (клієнт), що працює в браузері, МОЖЕ бути налаштований для виключення несанкціонованих прямих викликів до API наступним чином:
- Перший крок: Налаштуйте API на вимогу автентифікації. Клієнт повинен спочатку ідентифікувати себе через сервер (або який - або інший сервер безпеки) , наприклад , з проханням людини користувача надати правильний пароль.
Перед аутентифікацією дзвінки до API не приймаються.
Під час автентифікації повертається "маркер".
Після автентифікації приймаються лише виклики API із аутентифікацією "маркер".
Звичайно, на цьому етапі лише авторизовані користувачі, які мають пароль, можуть отримати доступ до API, хоча, якщо вони є програмістами, які налагоджують програму, вони можуть отримати доступ безпосередньо до неї з метою тестування.
- Другий крок: Налаштуйте додатковий API захисту, який потрібно викликати протягом короткого часу після того, як клієнтська програма js + html була спочатку запитана на сервері. Цей "зворотний дзвінок" повідомляє серверу, що клієнт успішно завантажений. Обмежте свої виклики API REST лише тоді, коли клієнт був нещодавно та успішно запитаний.
Тепер, щоб використовувати ваш API, вони повинні спочатку завантажити клієнт і фактично запустити його у браузері. Лише після успішного отримання зворотного виклику, а потім введення користувачем протягом короткого періоду часу, API прийматиме виклики.
Тому вам не доведеться турбуватися про те, що це може бути неавторизований користувач без облікових даних.
(Заголовок запитання: "Як я можу захистити виклики REST API", і з більшості того, що ви говорите, це ваше головне занепокоєння, а не буквальне питання про те, ЯК називається ваш API, а швидше, КОМУ, правильно? )