Как реализовать аутентификацию Querystring - PullRequest
3 голосов
/ 07 октября 2008

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

Это все работает как шарм. Теперь моему клиенту нужна ссылка «Управление моими подписками» в электронном письме, которая при нажатии автоматически регистрирует получателя / клиента на сайте без необходимости запоминать имя пользователя и пароль.

Эту проблему можно легко решить, если создать такую ​​ссылку:

http://mysite.com/manage.aspx?user=peter&password=hounddog

Конечно, информация должна быть не простым текстом, а каким-то образом зашифрована.

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

Каков наилучший способ сделать это без ущерба для безопасности?

Ответы [ 3 ]

6 голосов
/ 07 октября 2008

Вам придется немного скомпрометировать вашу безопасность, если вы хотите, чтобы люди могли войти без ввода пароля. Обратите внимание, что даже если бы у вас был доступ к паролю (как в вашем примере), вам бы пришлось встроить его в почтовый массаж, который будет передаваться в виде открытого текста.

Вы можете создать Guid, связанный с каждым пользователем и сообщением, и добавить его к URL-адресу, и разрешить этому вход в систему автоматически.

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

1 голос
/ 07 октября 2008

Не могли бы вы вставить зашифрованное имя пользователя, связанное с хэш-значением пароля?

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

1 голос
/ 07 октября 2008

Как насчет использования зашифрованного куки, который содержит токен доступа? Этот файл cookie будет доставлен после успешной аутентификации на отдельной странице.

Этот вид токена также может быть частью строки запроса URL.

Также вы можете рассмотреть возможность использования защищенного https вместо http.

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