|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.09.2008, 22:09 | #1 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Идентификация пользователя
Каким образом можно идентифицировать пользователя средствами ПХП, без вывода запроса на логин и пароль каждый раз при посещении страницы. Имеется ввиду не в рамках одного сеанса. Т.е. один раз пользователь зарегился, а потом автоматом его определять, например как на нашем форуме.
Напишу как я представляю себе этот механизм, а вы меня поправьте или предложите свой вариант. Предполагается, что cookie у клиента включены (если отключены, то вообще не представляю как с этим бороться, наверное, определять IP). Так вот первый раз запросить логин, пароль, после регистрации отослать на ПК пользователя cookie с уникальной id-строкой и сроком действия например 1год(не знаю сколько надо). Логин, пароль и id-строку сохранить в БД. Потом каждый раз в сценарии пытаться считывать cookie с id-строкой и искать ее в БД. Таким образом, можно будет узнать зарегистрирован юзер или нет, если да его логин и т.д. Наверное можно как-то определять\запоминать(в БД) IP пользователя, а потом этим пользоваться. Или вообще обьеденить эти 2 способа(cookie и IP), в целях безопасности. Как использовать cookie и БД я знаю, как определить IP нет. Подскажите пожайлуста как поступить правильно. |
25.09.2008, 22:29 | #2 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Gorychev
Ты блестяще справился с задачей. Только два замечания: 1) уникальную строку нужно менять каждый раз как пользователь заходит на сервер после долгого перерыва, то есть при начале новой сессии. Это нужно для безопасности (чтобы другой человек украв эту id-строку не мог пользоваться аккаунтом жертвы постоянно). Также строку нужно менять при каждом вводе пользователем логина и пароля. 2) IP адрес не является идентификатором пользователя. У двух пользователей может быть один ИП. Один и тот же пользователь может заходить с двух разных ИП адресов (дом и работа). А также не забываем, что у многих динамический ИП адрес. Также в таблицу обычно заносят время последней активности пользователя. Update: да, и время действия куки зависит от того, что за ресурс у тебя. На форумах от 3 дней, до месяца. На админских панелях 1 день обычно.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Последний раз редактировалось Johnatan; 25.09.2008 в 22:32. |
26.09.2008, 00:12 | #3 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
У меня например запрещены все куки и рефералы. Как такой случай?
|
26.09.2008, 01:48 | #4 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Alter
Не пробовал в интернет заходить без подключения к интернету? Как тебе такой случай? Или ездить на машине без коробки передач и руля? Имхо очень глупо "обрубать фичи" и ждать что кто-то за тебя решит, как же тебе сделать удобнее. Тебе просто прийдётся каждый раз вводить логин и пароль при посещении страницы.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
26.09.2008, 12:51 | #5 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
машина без коробки передач и руля: Электромобиль с автопилотом. Я не шучу, такое есть в природе.
по форуму programmersforum без проблем перехожу со страницы на страницу, ничего нетребует, только если Очень долго неиспользую ссылки страниц. Последний раз редактировалось Alter; 26.09.2008 в 12:54. |
26.09.2008, 14:31 | #6 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Alter
Значит этот форум добавлен в "белый лист" и кукисы с него разрешены. При этом существует такая вещь как сессии, которыми пользуется этот форум. Также есть система хранения данных на сервере, с идентификацией пользователя посредством броузера и флеша. З.Ы. Если я тебя попрошу научить меня строить такой электромобиль, ты меня научишь ведь, правильно?
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
26.09.2008, 19:23 | #7 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Теперь ситуация прояснилась. Когда напишу код выложу его опять в этой теме.
Johnatan отдельное спасибо. |
02.10.2008, 13:39 | #8 |
Заблокирован
Пользователь
Регистрация: 16.07.2008
Сообщений: 12
|
лично я всегда юзаю вот этот код для аунтификации юзера:
Код:
|
22.10.2008, 13:34 | #9 | |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Цитата:
Пару слов о файлах: _create_t.php - создает БД и таблицу (запустить в первую очередь) index.php - обычная страница сайта get_login.php - возвращает логин юзера и дату последнего визита get_info.php - роется в БД, ищет значение кука, который считан с ПК юзера, если кук найден, определяется логин и дата последнего визита, посылается новый кук с id строкой, меняется дата последнего визита. Затем обновленные данные записываются в БД. valid_user.php - при клике на ссылке для скачивания архива проходит проверка, если это Гость - перенаправляется для регистрации, если зарегистрированный юзер - на файл архива form_id.php - форма регистрации set_info.php - при регистрации выполняются все необходимые действия, и данные заносятся в БД. Смысл такой - архив могут скачать только зарегистрированные юзеры. Жду ваших замечаний по поводу алгоритма, безопасности и т.п. Сайт загнал на хостинг, его работу "вживую" можно глянуть здесь http://testuserid.ex6.ru/ |
|
10.02.2009, 08:56 | #10 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,648
|
Не понимаю людей, стремящихся отрубить куки и прочее. Я при проектировании движков всегда рассматриваю случай выключенных у пользователя JavaScript (сам раньше так сидел, хотя это тоже глупо). Но вот отсутствие поддержи куки я не рассматриваю. Нет ни малейшего повода отключать эту поддержку, а если и отключили - ждите сложностей с авторизацией.
А на счёт того, что некоторые считают куки небезопасными, мол, через них могут получить доступ к учётной записи. Это бред. А сложилось такое мнение потому, что чаще всего взлом учётной записи предполагает воровство куки, вот пользователь и думает а если у меня нет куки - значит меня не взломают. Но вот, смотрите, допустим аутентификация на сайте происходит по коду сессии (без привязки к IP и браузеру). Вытащить этот код из куки можно в том случае, если в движке есть уязвимости, позволяющие исполнить JavaScript. Если же мы отключили JavaScript - получить сессию через браузер невозможно. А если мы выключили куки, то движок подставит код сессии в GET. А из GET вытащить этот код на порядок проще, чем из куки, достаточно заставить пользователя перейти на сайт, в котором ведутся логи Referer'ов. Да, можно и их отключить. Представляю картину: пользователь без поддержки куки, рефереров, яваскрипт, с отключёнными картинками, без Flash, без Java. Можно для надёжности ещё и поддержку CSS отключить - тогда точно ни кто не взломает E-Mail: arigato.freelance@gmail.com
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление пользователя | треч | О форуме и сайтах клуба | 4 | 26.05.2008 21:38 |
Спросить у пользователя его имя | snake-as | Общие вопросы Delphi | 7 | 21.05.2008 20:02 |
Идентификация пользователя на каком-либо сайте. Продвинутые пользователи - к Вам вопрос. | Макса | Безопасность, Шифрование | 9 | 23.10.2007 21:36 |
Определение неактивности пользователя | Квэнди | Общие вопросы Delphi | 3 | 26.09.2007 19:24 |
Имя пользователя | Albenous | Win Api | 3 | 20.01.2007 22:39 |