Как мне перехватить URL / домен запроса в моем REST API? - PullRequest
2 голосов
/ 06 марта 2012

Это может быть простой ответ (и я надеюсь, что это так), но при поиске в Интернете я нашел только примеры того, как получить текущий URL / домен.Нет, где я могу найти, как получить это из входящего запроса http.

Моя установка - это REST API, который обрабатывает типичные запросы GET / POST / DELETE / PUT.Я должен вернуть информацию о домене клиентам о домене, с которого они тянут.Следовательно, если клиент, использующий мою CMS, нажимает на информацию, он должен получить информацию о домене, в который он вошел (и, следовательно, отправляет запрос).

Я решил не добавлять код здесь, так как мой вопросменьше относится к реальному коду, чем к методологии.Заранее спасибо за любые ответы!

Ответы [ 5 ]

4 голосов
/ 06 марта 2012

В Интернете каждый адрес может быть подделан (VPN, прокси и т. Д.).Это один из основополагающих принципов сети.

Вы никогда не сможете обнаружить со 100% гарантией, поэтому максимум, что Вы могли бы получить, это $_SERVER['HTTP_REFERER'] и $_SERVER['REMOTE_ADDR'].

.дополнительная проверка его существования перед сохранением / обработкой, но это может стоить дополнительной производительности вашего сервера.

Если ваша цель - предоставить некоторые дополнительные правила доступа к некоторым методам / данным, вам следует использовать другоймеханизм проверки (токены, пароли и т. д.).

3 голосов
/ 06 марта 2012

print_r ($ _ SERVER);

может быть, это будет полезно для вас

1 голос
/ 07 марта 2012

В итоге я определил ключевую константу во внешнем php-файле, который я доставлю клиенту в CMS.(Уже есть куча констант в любом случае).

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

Используя это в сочетании с различными другими проверками безопасности, я обнаружил, что нет необходимости отслеживать домен запроса.Спасибо за ответы, ребята!

1 голос
/ 06 марта 2012

Насколько я знаю, нет надежных способов определить домен, из которого поступает запрос. Возможно, вы могли бы проверить IP-адрес клиента и / или HTTP-реферер и сопоставить его с набором доменов, но, на мой взгляд, это не на 100% безопасно.

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

1 голос
/ 06 марта 2012

Звучит так, как будто вы ищете HTTP referer , доступный в PHP через $_SERVER['HTTP_REFERER'].

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