Как сделать так, чтобы запрос совпадал с REST api с фиксированной страницы? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть базовый HTML, который содержит форму.Отправка этой формы обрабатывается бэкэнд-сервисом RESTful (написан при весенней загрузке).Страница html не защищена по деловым причинам - любой механизм аутентификации / входа в систему не может быть применен к HTML.Как я могу убедиться, что только html разрешено использовать API бэкэнда, а не другие источники?И html, и api бэкенда находятся в одном домене.Пример - example.com/index.html;example.com/getStudentList

1 Ответ

0 голосов
/ 04 июня 2018

Как я могу убедиться, что только html разрешено использовать API бэкэнда, а не другие источники?

Если я правильно понимаю вещи, вы не хотитепотребители вашего API для аутентификации с помощью API, потому что причины?Но вы хотите, чтобы любой клиент, который загружает страницу индекса, имел доступ к API.

Самая близкая реализация, о которой я могу подумать, будет работать так, как если бы она относилась к URL-адресам API как к одноразовой панели.: Вы динамически генерируете html-страницу с URL-адресами, которые содержат некоторые трудно угадываемые токены.Когда API получает любой запрос, он проверяет токен - если токена нет, он отклоняет запрос (403 - Запрещено).Если токен существует, он проверяет, активен ли этот токен или нет;если срок действия токена истек, запрос отклоняется.Если токен неактивен, но в течение некоторого льготного периода вы можете перенаправить запрос API на URL-адрес с более новым токеном (301 - перемещено окончательно).Если токен активен, то вы обслуживаете запрос.

Марк Симанн, пытаясь решить другую проблему, написал приятное небольшое введение: Избегание взломанных URL .

Если это звучит для вас как сессионный cookie - хорошо, вы не ошибаетесь.Честно говоря, я подозреваю, что различия неуловимы, и я не удивлюсь, если обнаружу, что преувеличиваю их.Основные отличия заключаются в том, что мы сообщаем такие вещи, как аннулирование кэша и жизненный цикл ресурса, промежуточным компонентам.Заголовок Cookie, с другой стороны, фактически непрозрачен.

Этот ответ, безусловно, несовершенен - ​​любой, кто сталкивается с догадкой , активным в данный момент URL, сможет получить доступ к APIпопадают ли они на страницу индекса или нет.Непрозрачность, а не безопасность.

Но этого может быть достаточно, чтобы опередить вас, пока у вас не появятся разумные требования.

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