Защита API от других веб-приложений - PullRequest
0 голосов
/ 05 мая 2020

У меня есть веб-приложение реагирования с flask api (раньше я использовал express). Продукт этого приложения - данные, которые оно отображает. Я не хочу, чтобы другие люди могли легко получать эти данные от вызова api.

Я хочу защитить api так, чтобы к нему можно было получить доступ только из моего приложения для реагирования и ничего больше. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 05 мая 2020

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

Конечно, вы можете жестко запрограммировать какой-то «секретный ключ» с помощью приложения, но любой, кто этого достаточно сильно хочет, прочитает его из вашего приложения или обнюхает пакеты через регистратор пакетов, пока не найдет ключ. .

РЕДАКТИРОВАТЬ: Да, и как часть авторизации при входе в систему, предоставьте им уникально сгенерированный «API-KEY» как часть идентичности, чтобы вы могли проверить их при отправке, и если они нарушают ваше доверие , отметьте их ключ API как недействительный на сервере, чтобы они больше не могли их использовать.

1 голос
/ 05 мая 2020

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

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