Безопасное перемещение пользователей между веб-сайтами

StackOverflow https://stackoverflow.com/questions/1868415

  •  18-09-2019
  •  | 
  •  

Вопрос

Вот сценарий:

  • У вас есть два отдельных веб-сайта, которые существуют в разных средах (I.E.разные базы данных, разные веб-серверы/домены)
  • У вас есть полный контроль над кодом обоих сайтов, но, как указано выше, они не могут напрямую взаимодействовать с базой данных друг друга.
  • Вы должны безопасно перенести пользователя с сайта A на сайт B.

Каков наилучший способ реализовать это?Простая пересылка идентификатора пользователя между сайтами через строку запроса не будет безопасной, даже если она зашифрована, поскольку URL-адрес может получить кто-то другой.Похоже, что стандартным решением является передача идентификатора пользователя вместе с другим временным ключом, который создал веб-сайт A и о котором знает веб-сайт B.Если это так, то как правильно настроить систему с помощью временного ключа?

Спасибо!

Это было полезно?

Решение

Напишите вызов веб-службы через HTTPS на обоих концах, чтобы получить данные пользователя, и это работает только для определенной пары входа.Задача решена.Вам необходимо сделать идентификаторы входа на обоих концах одинаковыми. или используйте единый знак для файлов cookie.Более подробно в статье Випина Самара: «Единый вход в файлы cookie для веб-приложений».

Они не смогут получить URL-адрес/пароли, если не войдут в код приложения на одном из серверов.

Другие советы

Я делаю что-то вроде этого.Лучшее, о чем я могу сейчас подумать, — это передать HASH идентификатора пользователя или, если это вас беспокоит, хеш некоторых других пользовательских данных.

Если вам нужны временные ключи (я тоже мог бы сделать что-то подобное), как насчет настройки веб-службы на A, к которой B может обращаться, чтобы получить идентификатор пользователя на основе временного ключа.Таким образом, это совершенно отдельный вызов, и его можно защитить.

Взгляни на "Сквозная аутентификация". это концепция, которая позволяет передавать личность пользователя из одной системы в другую.

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

Вам необходимо передавать информацию между сайтом A и сайтом B, но вам не нужно делать пользователя каналом для этой информации.

Сайт B может иметь веб-сервис, который позволяет сайту A создавать сеанс для пользователя.В этом проекте взаимодействие будет выглядеть следующим образом:

  • Пользователь нажимает кнопку на сайте А
  • Сайт A вызывает веб-сервис на сайте B, который передает временный URL-адрес входа обратно на сайт A.
  • Сайт A перенаправляет пользователя на временный URL-адрес на сайте B.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top