Как сделать REST-звонки безопасными - PullRequest
6 голосов
/ 02 июля 2011

Я вызываю веб-сервис, используя методологию REST, используя JSON / JS / jquery, и мне интересно, есть ли способ вызвать веб-сервис, не раскрывая мои ключи API в исходном коде.Кто-нибудь знает способ скрыть ключи API от общественности и при этом сделать звонок?

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

Ответы [ 2 ]

10 голосов
/ 02 июля 2011

Вы можете делегировать вызовы на свой собственный сервер, поэтому вместо:

  1. Браузер отправляет HTTP-запрос на внешний REST API, с ключом API
  2. Внешний REST API отправляет ответ набраузер

у вас есть

  1. Браузер отправляет HTTP-запрос на ваш сервер
  2. Ваш сервер отправляет HTTP-запрос на внешний REST API с ключом API
  3. Внешний REST API отправляет ответ на ваш сервер
  4. Ваш сервер отправляет ответ в браузер

Я не уверен, что кто-то еще "крадет" ваш ключ APIОднако это огромная проблема, поскольку ключи API (например, Google) часто связаны с конкретными доменами.

0 голосов
/ 02 июля 2011

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

Ключи API обычно предназначены для использования в качестве партнера, а не для распространения; это способ избежать их распространения.

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