Аутентификация веб-сервиса - PullRequest
1 голос
/ 27 ноября 2008

Я работаю над интерфейсом webservice + AJAX и беспокоюсь об аутентификации. В этот момент я передаю имя пользователя и пароль веб-службе в качестве аргументов, но боюсь, что такой подход крайне небезопасен. Мне сказали, что SSL может решить мою проблему, но я хочу больше альтернатив.

Мой веб-сервис написан на php, а мой интерфейс на php + AJAX. Веб-сервис получает аргументы от POST или GET и получает XML (в будущем, возможно, я буду использовать JSON)

Ответы [ 4 ]

2 голосов
/ 27 ноября 2008

Существуют различные стандарты, такие как ws-trust, ws-security, ws-federation и т. Д., На которые можно полагаться при защите своих веб-сервисов.

Вы также можете подписать свои мыльные заголовки, содержащие информацию о безопасности.

В следующем блоге подробно описаны различные механизмы аутентификации для веб-сервисов с использованием php. http://phpwebservices.blogspot.com/

1 голос
/ 27 ноября 2008

AJAX-запрос ничем не отличается от обычного запроса.

Так как у вас есть интерфейс AJAX, я думаю, у вас может быть страница, где пользователи входят в систему. При входе в систему сохраняйте куки в браузере. Затем этот файл cookie может быть отправлен обратно с каждым запросом AJAX.

Ваш PHP-скрипт может «аутентифицировать» AJAX-запрос, используя cookie точно так же, как и при обычных запросах.

0 голосов
/ 28 ноября 2008

SSL с пользовательскими учетными данными настолько безопасен, насколько это возможно. Вы должны определить, какова ваша проблема безопасности. Что пользовательский пакет будет прослушан? Вот для чего нужен SSL. Что неавторизованный пользователь получит доступ? Это будет зависеть от безопасности пароля.

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

0 голосов
/ 27 ноября 2008

Если я понимаю вопрос, у вас есть 1) AJAX-сообщения на PHP, 2) PHP вызывает веб-сервис. У вас должен быть сертификат SSL для шага 1. Для шага 2 сертификат SSL на компьютере веб-службы также будет безопасным. Альтернативой может быть установка защищенной VPN между веб-сервером и сервером веб-службы.

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