2015-04-29 2 views
2

Возможно, я ошибаюсь, так как я очень новичок в основах API Key. Пожалуйста, поправьте меня, если я ошибаюсь.Архитектура реализации ключа API

У меня есть внешний интерфейс JavaScript, а бэкэнд-приложение в PHP (может быть любой технологией). Я хочу выставить некоторый API из бэкэнд-приложения для AJAX. Чтобы сторонний разработчик мог использовать мой API из своего приложения, не беспокоясь о фактической реализации на бэкэнд.

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

Поскольку это вызов AJAX на сервер, у него есть ключ API, хранящийся в JS-файле, который я вам дам.

Вопрос: Если кто-то использует поиск в файле JS, который у него есть, можно легко получить ключ API, который был разработан для другого приложения. Как я должен реализовать это в безопасном режиме.

Может ли кто-нибудь помочь?

+0

Вы можете построить связь между URL-адресом реферала (с которого связаны вызовы API) и ключом, который вы предоставили. – JuniorDev

+0

не может это быть фальшивым ..? Это пакетные данные, вы можете изменить его с помощью WireShark. Также предположим, если у человека есть PhoneGapped JS Application, то ?? –

+0

Совершенно чистое приложение JS практически невозможно защитить вашими стандартами. Возможно, вы могли бы создать подход на основе токенов, сначала войти в систему/рукопожатие и отправить ключ с очень коротким сроком действия, который будет включен в каждый последующий вызов API. Вы также можете посмотреть, как Facebook обрабатывает эти ситуации в своем API. В их случае приложениям JS не нужен защищенный ключ, а только appId. – JuniorDev

ответ

1

Обычный javascript невозможно скрыть от конечного пользователя, так как конечный пользователь выполняет код.

Вы можете использовать обфускацию javascript, но затем снова есть возможность обратного проектирования.

+0

Вот что я думал. Но тогда как вы сделаете запрос к определенному API с ключами API, используя вызов AJAX.? –

+0

У вас нет. Вы используете серверный код для получения ответа API –

+0

Не получите вас ... Вы имеете в виду, что AJAX не должен вызывать API, а API должен быть доступен через другой код на стороне сервера, например CURL.? –

Смежные вопросы