Предположим, у меня есть сайт, на котором есть много информации о наших продуктах. Я бы хотел, чтобы некоторые из наших клиентов (включая нас!) Могли искать наши продукты для различных методов, в том числе:Рекомендации по безопасным API-интерфейсам?
1) Вытягивание данных из вызовов AJAX, возвращающих данные в прохладном виде, JavaScripty-ways 2) Создание приложений iPhone, которые используют эти данные; 3) Наличие других веб-приложений использует эти данные для их собственного конца.
Обычно я просто создаю API и делаю это с ним. Тем не менее, эти данные на самом деле мягко конфиденциальны, то есть мы не хотим, чтобы наши конкуренты могли каждый день искать все наши продукты, а затем автоматически устанавливали цены, чтобы подрезать нас. И мы также хотим иметь возможность взглянуть на то, кто может злоупотреблять системой, поэтому, если кто-то из десяти миллионов сложных вызовов в наш API в один день и заботится о нашем сервере, мы можем их отключить.
Следующим логическим шагом было бы создать ключ разработчика для ограничения доступа, который отлично подходит для веб-приложений, но не для любых вызовов AJAX. (Как я вижу, им нужно будет предоставить ключ в JavaScript, который находится в открытом виде и легко видно, и, следовательно, на самом деле нет никакой безопасности. В частности, если мы будем использовать наши собственные ключи разработчиков на нашем сайте чтобы сделать эти вызовы AJAX.)
Итак, мой вопрос: после некоторого времени осмотреть Oauth и OpenID, я не уверен, что есть решение, которое будет обрабатывать все три из вышеперечисленных. Есть ли какие-то канонические «лучшие практики» для ключей разработчиков, или может ли Oauth и OpenID обрабатывать AJAX-вызовы легко в некотором роде, которые мне еще предстоит получить, или я чего-то не хватает?
Но как можно защитить этот прокси-сервер API, чтобы злоумышленник не злоупотреблял им? – Constantin