Я создаю веб-сервис, используя встроенный класс php's SoapServer
. Я провел некоторые базовые тесты и, похоже, работает нормально, но теперь мне нужно ограничить, кто может использовать эту услугу.Как узнать, кто вызывает веб-службу (PHP на Apache)
Предполагая, что только другие сценарии на одном сервере пытаются использовать мою службу и что они будут делать эту серверную сторону (в отличие от AJAX или аналогичных средств), имеет ли моя служба какие-либо средства идентификации владельца запрашивающего?
Я могу ограничить доступ к сервису только запросами, исходящими из определенного источника, но это кажется очень строгим или очень ненадежным, в зависимости от того, разрешаю ли я доступ к любому скрипту в каталоге, а не только к определенным сценариям.
Я просто не понимаю, могу ли я ограничить доступ пользователя на сервере, так как пользователь будет считать, что исходный запрашивающий скрипт будет www.
Я устанавливаю его как переменную GET для фактического обслуживания? Пользователь будет вызывать службу как 'mywebservice.php? Key = 1234'? И тогда я бы посмотрел на ключ в самом сервисе? – Anthony
@ Энтони, спасибо за проголосовать. Насколько мне известно, многие публичные API веб-сервисов (Yahoo, Weather Bug) требуют, чтобы разработчик зарегистрировался после этого, им будет предоставлен ключ, который при запросе на услугу должны пройти в качестве аргумента. В .net метод 'called' называется веб-методом (если вы являетесь .net devpr, простите меня) , и поэтому, когда метод вызывается на веб-сервере, он kindful проверяет меня как resgitered пользователя API. То, что я имел в виду не "mywebservice.php? Key = 1234?" Но через XML –
@Vivek: здесь нет голоса. Я недостаточно разбираюсь в этой теме, чтобы хорошо разбираться в плохом, или я не буду спрашивать (или задавать вопросы). Извините, что кто-то еще почувствовал, что он выключен. Но Нир дает вашему методу сильное одобрение. – Anthony