У меня есть веб-сервис, который должен иметь возможность проверить IP-адрес конечного пользователя, который вызвал серверный скрипт, запрашивающий веб-сервис. Простое расположение:
Лицо A переходит на веб-страницу B. Веб-страница B вызывает веб-службу C для получения некоторой информации о лице A. Веб-служба C не предоставляет веб-странице B запрашиваемую информацию без подтверждения того, что запрос исходил от IP-адреса лица A, а не от лица, украл сессию Лица А.
Я думаю, что для решения на основе браузера исходный сайт (веб-страница B) может открыть фрейм, который переходит на страницу аутентификации веб-службы. Какой-то ключ передается в браузер, который будет как-то указывать как IP-адрес пользователя, так и IP-адрес веб-страницы B, чтобы веб-служба могла подтвердить, что никто ничего не украл.
У меня есть две проблемы, но сначала я остановлюсь на более неотложной:
Я не уверен, действительно ли мой план на основе браузера имеет смысл. Если кто-то украдет файл cookie сеанса, как веб-служба узнает об этом? Будет ли этот файл cookie храниться на веб-странице B и, следовательно, его будет сложнее украсть? Является ли обоснованным предположение, что cookie или ключ, хранящиеся только на сервере, а не в браузере, безопасны?
Кроме того, будет ли веб-служба, основанная на начальном соединении iframe, ожидать комбинированный сервер / user-ip? Я имею в виду, хранится ли сеансовый ключ, предоставленный через iframe, веб-службой, а веб-сайт B показывает, что он соответствует? Или ключ сеанса является более общим, то есть веб-сервис передает ключ через веб-сайт B, и веб-служба проверяет, является ли это действительным ключом сеанса, на основе того, как должен выглядеть действительный ключ сеанса?