Автоматический вход пользователя на сторонний сайт без указания пароля к нему - PullRequest
0 голосов
/ 07 декабря 2009

Фон

Мы интегрируем стороннее почтовое решение на наш сайт. Когда пользователь переходит на страницу Mail, он должен автоматически проходить аутентификацию на сайте Mail.

На данный момент ссылка Mail указывает на нашу страницу, которая автоматически отправляет форму с логином и паролем пользователя. После нажатия submit пользователь перенаправляется на сайт Mail с файлом cookie аутентификации.

Проблема с этим подходом состоит в том, что мы не хотим, чтобы пользователь видел его пароль Mail, потому что мы генерируем его автоматически для него, и есть некоторые разумные причины не показывать его.

Вопрос

Есть ли какой-либо способ получения файлов cookie для проверки подлинности почты без отправки клиенту регистрационной информации и выполнения операции form.submit из браузера клиента? Есть ли лучший способ сделать то, что я пытаюсь сделать?

Редактировать

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

Ответы [ 3 ]

2 голосов
/ 07 декабря 2009

Изменить: Я не прочитал сообщение правильно, я думал, что он пытался войти в удаленное почтовое приложение, а не одно размещено на его собственном сервере. Игнорировать этот ответ.

Когда вы входите на удаленный сторонний почтовый веб-сайт, они создают cookie (так как HTTP не имеет состояния, это единственный способ узнать, что пользователь проходит аутентификацию, если он не хранит какой-либо идентификатор сеанса в URL). Когда вы отправляете пользователя на этот сайт, сайт должен знать, как аутентифицировать пользователя. Даже если вы вошли в приложение и захватили cookie, вы можете установить cookie в браузере пользователей для другого веб-сайта. Единственный способ для этого - если на стороннем веб-сайте есть какой-либо API-интерфейс разработки, к которому вы можете подключиться, или он позволяет вам использовать идентификаторы сеанса в URL.

Возможное решение, но есть угроза безопасности Если они позволяют вам установить session_id в URL-адресе (например, PHPSESSID в PHP), вы можете получить идентификатор сеанса и добавить его к URL-адресу при отправке его пользователю. Мне не очень нравится эта идея, поскольку, если пользователь нажимает на ссылку в электронном письме, новая страница сможет проверить реферала и увидеть его идентификатор сеанса в URL. Это может стать огромным риском для безопасности.

1 голос
/ 07 декабря 2009

Поиск тем, связанных с вашим почтовым поставщиком и «сквозной аутентификацией». Вы не упомянули, какого поставщика / программного обеспечения вы используете для решения веб-почты, поэтому я не могу вам особо помочь. За исключением пересылки информации о пользователе (в почтовом запросе) обработчику входа в систему.

0 голосов
/ 07 декабря 2009

Создайте уникальные идентификаторы перед отправкой электронного письма и поместите их как скрытые вместо имени пользователя / пароля в форму. Сделайте их одноразовыми (можно использовать только один раз или использовать один раз до успешного входа на сайт)

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