Ограничение доступа к REST API - PullRequest
2 голосов
/ 04 февраля 2012

Я делаю PHP-бэкэнд для своего приложения с использованием REST API.

Я бы хотел запретить доступ чужого скрипта к моему API.Я думал об использовании $ _SERVER ['HTTP_REFERER'], чтобы избежать их.Но, , в какой ситуации HTTP_REFERER не работает? говорит, что мы не можем полагаться на это.

Есть ли другой способ ограничить мой API только моим клиентом?

Ответы [ 3 ]

3 голосов
/ 07 февраля 2012

Итак, вы можете реализовать базовую аутентификацию HTTP, как это предложил Марцин. Или вы можете реализовать OAuth, предложенный HQarroum. Первое гораздо проще реализовать. Для HTTP BASIC запросы от вашего клиента выглядят так:

.. https://username:password@yourbackend.host.com/resource/method/foo/bar ..

Реализовать базовую аутентификацию HTTP очень просто. В Apache см. this . Для nginx см. this .

Что касается OAuth, это немного более сложная реализация. Если вы изучаете OAuth и вам не нужны разные области действия (уровни авторизации для доступа к разным уровням данных), то вам следует реализовать двухсторонний поток OAuth. Однако я считаю, что OAuth может оказаться излишним, если вы являетесь единственным потребителем защищенных ресурсов.

Я рекомендую использовать SSL (https) во всех случаях.

С уважением,
Neil
http://developer.mashery.com

1 голос
/ 04 февраля 2012

Вы можете просто использовать обычную HTTP-аутентификацию пользователя / пароль.

1 голос
/ 04 февраля 2012

Вам следует взглянуть на протокол OAuth и реализовать его для клиентов, использующих ваш API.

...