[Закрыть]
 
popoff.donetsk.ua
Отсутствием жадности часто прикрывается самая настоящая жадность.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Программирование на PHP - passport: аутентификация по принципу http digest

passport: аутентификация по принципу http digest

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:1113
passport: аутентификация по принципу http digest

Вопрос: как-то странно реализована система аутентификации. Как она работает?

1. Форма авторизации содержит в себе два текстовых поля, в которые пользователь вводит данные: логин (login), пароль в открытом виде (pwd),

2. Форма авторизации содержит в себе три скрытых поля: случайная строка («блокнот», notepad), индекс (i) и скрытый пароль (password).

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

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

5. Когда пользователь вводит логин и пароль, при помощи JavaScript вычисляется значение

password=sha1(sha1(pwd)+notepad)

6. В строку pwd записывается пустая строка. Это нужно для того, чтобы пароль не передавался по сети в открытом виде. Это можно увидеть невооруженным взглядом: когда ты нажимаешь «вход», в браузере в строке пароля ты можешь видеть, что пароль стирается.

7. В строку notepad тоже записывается пустая строка - она уже есть на сервере и передавать ее назад второй раз не требуется.

8. В MySQL хранится $pwd=sha1(пароль)

9. На стороне клиента определяется значение $notepad на основании индекса, пришедшего из формы.

10. На стороне сервера вычисляется значение

$password=sha1($pwd.$notepad)

11. Сравниваем полученное значение $password со значением password, пришедшим из формы. Если значения совпали, то пользователь ввел правильный пароль.

Дополнительная информация:

Более подробное объяснение, если то, что выше - не понятно:
http://phpclub.ru/talk/showthread.php?postid=154561#post154561

Форма авторизации службы passport: passport.login

Реализация алгоритма аутентификации по принципу http digest: http.login

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Программное обеспечение любой сложности
koins.com.ua