Как я могу убедиться, что только html разрешено использовать API бэкэнда, а не другие источники?
Если я правильно понимаю вещи, вы не хотитепотребители вашего API для аутентификации с помощью API, потому что причины?Но вы хотите, чтобы любой клиент, который загружает страницу индекса, имел доступ к API.
Самая близкая реализация, о которой я могу подумать, будет работать так, как если бы она относилась к URL-адресам API как к одноразовой панели.: Вы динамически генерируете html-страницу с URL-адресами, которые содержат некоторые трудно угадываемые токены.Когда API получает любой запрос, он проверяет токен - если токена нет, он отклоняет запрос (403 - Запрещено).Если токен существует, он проверяет, активен ли этот токен или нет;если срок действия токена истек, запрос отклоняется.Если токен неактивен, но в течение некоторого льготного периода вы можете перенаправить запрос API на URL-адрес с более новым токеном (301 - перемещено окончательно).Если токен активен, то вы обслуживаете запрос.
Марк Симанн, пытаясь решить другую проблему, написал приятное небольшое введение: Избегание взломанных URL .
Если это звучит для вас как сессионный cookie - хорошо, вы не ошибаетесь.Честно говоря, я подозреваю, что различия неуловимы, и я не удивлюсь, если обнаружу, что преувеличиваю их.Основные отличия заключаются в том, что мы сообщаем такие вещи, как аннулирование кэша и жизненный цикл ресурса, промежуточным компонентам.Заголовок Cookie, с другой стороны, фактически непрозрачен.
Этот ответ, безусловно, несовершенен - любой, кто сталкивается с догадкой , активным в данный момент URL, сможет получить доступ к APIпопадают ли они на страницу индекса или нет.Непрозрачность, а не безопасность.
Но этого может быть достаточно, чтобы опередить вас, пока у вас не появятся разумные требования.