Я работаю над интерфейсом webservice + AJAX, и меня беспокоит аутентификация. В этот момент я передаю имя пользователя и пароль веб-сервису в качестве аргументов, но я боюсь, что этот подход очень небезопасен. Мне сказали, что мою проблему может решить ssl, но мне нужны другие альтернативы.
Мой веб-сервис написан на php, а мой интерфейс - на php + AJAX. Веб-сервис получает аргументы от POST или GET и извлекает xml (в будущем, возможно, я буду использовать JSON)






Если я понимаю вопрос, у вас есть 1) сообщения AJAX на PHP, 2) PHP вызывает веб-службу. У вас должен быть сертификат SSL для шага 1. Для шага 2 сертификат SSL на компьютере веб-службы также будет безопасным. Альтернативой может быть установка безопасной VPN между веб-сервером и сервером веб-службы.
Запрос AJAX ничем не отличается от обычного запроса.
Поскольку у вас есть интерфейс AJAX, я думаю, у вас может быть страница, на которой пользователи входят в систему. Когда они входят в систему, сохраняют cookie в браузере. Затем этот файл cookie можно отправлять обратно с каждым запросом AJAX.
Ваш PHP-скрипт может «аутентифицировать» запрос AJAX с помощью файла cookie точно так же, как и с обычными запросами.
@ Pierre-YvesGillier, похоже, проблема, о которой вы говорите, возникает только в том случае, если сайт находится в iframe. И есть обходной путь.
Существуют различные стандарты, такие как ws-trust, ws-security, ws-federation и т. д., На которые вы можете положиться для защиты своих веб-сервисов.
Вы также можете подписать свои заголовки мыла, содержащие информацию о безопасности.
В следующем блоге подробно описаны различные механизмы аутентификации для веб-сервисов с использованием php. http://phpwebservices.blogspot.com/
SSL с учетными данными пользователя настолько безопасен, насколько это возможно. Вы должны определить, в чем заключается ваша проблема безопасности. Что пакет пользователя будет обнюхиваться? Вот для чего нужен SSL. Что получит доступ неавторизованный пользователь? Это будет зависеть от безопасности пароля.
Одна вещь, которую вы можете сделать, - это настроить систему аренды, в которой вы раздаете уникальный зашифрованный идентификатор, который должен быть передан в сообщении и срок действия которого истекает после транзакции или через короткий период времени. Этот код аренды можно получить в скрытом div на странице (чтобы избежать проблемы с песочницей, описанной выше), а затем вставить в каждый последующий запрос Ajax.
будь осторожен. Некоторые версии IE «песочница» AJAX-запроса с главной страницы. Тогда куки недоступны ...