Как подтвердить, что запрос пришел с сайта? - PullRequest
0 голосов
/ 11 марта 2020

Я и друг создаем API с помощью веб-интерфейса. Веб использует API через Ajax запросов для взаимодействия с серверной частью. Мы хотели бы предложить ограниченный доступ к API для людей, не использующих веб-сайт (вы должны заплатить плату за использование API), но полный неограниченный доступ для всех на веб-сайте.

Теперь проблема: мы пытаемся определить, откуда и откуда поступает вызов API. Поскольку веб-сайт использует JavaScript для вызовов, запрос, похоже, приходит с IP-адреса пользователя. Мы подумали об использовании уникальных токенов для каждого вызова или подписании вызовов, но JavaScript предоставит методы и ключи, используемые в обоих случаях.

Мы делаем упор на безопасность, поэтому мы ищем надежное решение.

Заранее спасибо!

1 Ответ

0 голосов
/ 19 марта 2020

Мы остановились на промежуточном программном обеспечении в логине, написанном в PHP. Он сгенерировал дополнительный токен, действительный в течение 24 часов, и сохранил его в кеше. Все запросы, сделанные с веб-сайта, используют этот токен, поэтому, если он отсутствует, то запрос не пришел с указанного веб-сайта.

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

...